เราจะส่งค่าวันที่ 2012-02-18 หรือ 20120218 ไปค้นหาแบบ Between แต่พอมาเจอในฐานข้อมูล SQL 2008 เก็บ Type แบบนี้ 2012-02-18 14:27:27.810 ต้องทำอย่างไงค่ะ
เราลอง SELECT ใน SQL 2008 ก็โอเค SQL 2008
SELECT CONVERT(VARCHAR(10),DATE, 112) FROM [DATA].[dbo].[TBT_PRINT] WHERE DATE = '2012-02-18 14:27:27.810'
แต่ลองใน AppServ PHP
โดยไปตั้งค่าที่
; Specify how datetime and datetim4 columns are returned
; On => Returns data converted to SQL server settings
; Off => Returns values as YYYY-MM-DD hh:mm:ss
mssql.datetimeconvert = Off
Warning: mssql_query() [function.mssql-query]: message: Conversion failed when converting date and/or time from character string. (severity 16)
Warning: mssql_query() [function.mssql-query]: Query failed in D:\AppServ\www\bar_code_number\conver_date.php on line 6
Error Query [SELECT * FROM TBT_PRINT WHERE DATE = '2012-02-18 14:27:27.810' ]
$strSQL = "SELECT * FROM TBT_PRINT WHERE between DATE(date,'%Y-%m-%d')='2012-02-18' and DATE(date,'%Y-%m-%d')='2012-02-18' ";
และก็
Code (PHP)
$strSQL = "SELECT * FROM TBT_PRINT WHERE CONVERT(DATE,101) BETWEEN '2012-02-18 00:00:00.000' AND '2012-02-18 00:00:00.000' ";
Warning: mssql_query() [function.mssql-query]: message: Incorrect syntax near the keyword 'between'. (severity 15) in D:\AppServ\www\bar_code_number\conver_date.php on line 6