BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: panda ที่ ธันวาคม 13, 2011, 14:53:50 PM

หัวข้อ: ช่วยแนะนำเรื่องคำสั่งเขียนรายงานให้หน่อยค่ะ
เริ่มหัวข้อโดย: panda ที่ ธันวาคม 13, 2011, 14:53:50 PM
 :'( :'( รบกวนท่านผู้รู้ช่วยดูรายงานให้หน่อยค่ะ  ตรงระยะเวลาสรุปใช้คำสั่งอารายอ่ะ :'( :'(  ช่วยแนะนำด้วยค่ะ
(เอาวันที่คืน - วันที่รับ)
หัวข้อ: Re: ช่วยแนะนำเรื่องคำสั่งเขียนรายงานให้หน่อยค่ะ
เริ่มหัวข้อโดย: panda ที่ ธันวาคม 13, 2011, 16:52:51 PM
ใช้คำสั่ง DateDiff ใช่เปล่าค่ะ  ;D ;D แล้วใช้งัย.... :'( :'(
หัวข้อ: Re: ช่วยแนะนำเรื่องคำสั่งเขียนรายงานให้หน่อยค่ะ
เริ่มหัวข้อโดย: redfireball ที่ ธันวาคม 14, 2011, 09:16:19 AM
ลองใช้ timediff ดูครับ
SELECT TIMEDIFF('2011-07-12 13:48:15', '2011-07-04 09:34:43') as times
ประมาณนี้
ศึกษาคำสั่ง sql เพิ่มเติมได้ที่
http://www.java2s.com/Tutorial/MySQL/0280__Date-Time-Functions/Catalog0280__Date-Time-Functions.htm
ครับ
หัวข้อ: Re: ช่วยแนะนำเรื่องคำสั่งเขียนรายงานให้หน่อยค่ะ
เริ่มหัวข้อโดย: panda ที่ ธันวาคม 14, 2011, 12:14:08 PM
ขอบคุณค่ะ เดี๋ยวจะลองดูค่ะ
หัวข้อ: Re: ช่วยแนะนำเรื่องคำสั่งเขียนรายงานให้หน่อยค่ะ
เริ่มหัวข้อโดย: realaerm ที่ ธันวาคม 14, 2011, 16:15:33 PM
:'( :'( รบกวนท่านผู้รู้ช่วยดูรายงานให้หน่อยค่ะ  ตรงระยะเวลาสรุปใช้คำสั่งอารายอ่ะ :'( :'(  ช่วยแนะนำด้วยค่ะ
(เอาวันที่คืน - วันที่รับ)

ลองเอา variable ไปวาง แล้วด้านในเขียนคำสั่งแบบนี้นะครับ

  Value := GetSQLStringData('select concat(TIMESTAMPdiff(day,concat(rent_date," ",rent_time),concat(return_date," ",return_time))," Çѹ  ",'+
' sec_to_time(TIMESTAMPdiff(second,concat(rent_date," ",rent_time),concat(return_date," ",return_time))-'+
' ((TIMESTAMPdiff(day,concat(rent_date," ",rent_time),concat(return_date," ",return_time))*24)*60)*60))as c_datediif'+
' from ipdrent where an="'+DBPipeline['an']+'" and return_date is not null');

พอดีเคยทำไว้ไม่รู้จะใช่ที่ต้องการรึปล่าว  ;)
หัวข้อ: Re: ช่วยแนะนำเรื่องคำสั่งเขียนรายงานให้หน่อยค่ะ
เริ่มหัวข้อโดย: panda ที่ ธันวาคม 15, 2011, 15:53:24 PM
ขอบคุณมากมายค่ะ คุณ realaerm  ;D ;D ตรงใจสุดๆๆ  แต่ไม่ต้องลบเวลานะค่ะ เอาแค่วัน
ลองแก้ไขแล้ว  ใช้คำสั่ง ดังนี้
GetSQLStringData('select concat(TIMESTAMPdiff(day,rent_date,return_date)," Çѹ  ",'+
' sec_to_time(TIMESTAMPdiff(second,rent_date,return_date)-'+
' ((TIMESTAMPdiff(day,rent_date,return_date)*24)*60)*60))as c_datediif'+
' from ipdrent where an="'+DBPipeline['an']+'" and return_date is not null');
แต่ผลออกมาได้วันจริงค่ะ แต่มี เวลา 00:00:00 ตามมาด้วย ไมทราบว่าต้องแก้ไขตรงไหน
หัวข้อ: Re: ช่วยแนะนำเรื่องคำสั่งเขียนรายงานให้หน่อยค่ะ
เริ่มหัวข้อโดย: realaerm ที่ ธันวาคม 15, 2011, 21:50:37 PM
ขอบคุณมากมายค่ะ คุณ realaerm  ;D ;D ตรงใจสุดๆๆ  แต่ไม่ต้องลบเวลานะค่ะ เอาแค่วัน
ลองแก้ไขแล้ว  ใช้คำสั่ง ดังนี้
GetSQLStringData('select concat(TIMESTAMPdiff(day,rent_date,return_date)," Çѹ  ",'+
' sec_to_time(TIMESTAMPdiff(second,rent_date,return_date)-'+
' ((TIMESTAMPdiff(day,rent_date,return_date)*24)*60)*60))as c_datediif'+
' from ipdrent where an="'+DBPipeline['an']+'" and return_date is not null');
แต่ผลออกมาได้วันจริงค่ะ แต่มี เวลา 00:00:00 ตามมาด้วย ไมทราบว่าต้องแก้ไขตรงไหน


ถ้างั้นแค่นี้ก็ได้ครับ   ;)

แบบที่ 1
GetSQLStringData('select TIMESTAMPdiff(day,rent_date,return_date)as c_datediff '+
' from ipdrent where an="'+DBPipeline['an']+'" and return_date is not null');

แบบที่ 2
GetSQLStringData('select datediff(return_date,rent_date)as c_datediff '+
' from ipdrent where an="'+DBPipeline['an']+'" and return_date is not null');

ปล.แบบที่ 1 จะได้จำนวนวันแบบไม่รวมเศษที่เหลือ แบบที่ 2 คือเอาวันที่มาลบกันเฉยๆ
หัวข้อ: Re: ช่วยแนะนำเรื่องคำสั่งเขียนรายงานให้หน่อยค่ะ
เริ่มหัวข้อโดย: panda ที่ ธันวาคม 29, 2011, 15:37:20 PM
ขอรบกวนท่านผู้รู้ ช่วยอีกครั้งค่ะ
พอดี User ต้องการให้เอาวันที่คืนเวชระเบียน - วันที่จำหน่ายผู้ป่วย ปัญหาคืออยู่คนละตารางจะทำอย่างไรได้ค่ะ