2013-03-25 168 views
-1

請幫幫我。我有表A日期格式爲DD/MM/YY和時間格式爲hh:mm:ss的AM/PM查詢SQL日期和時間(CLOSED)

╔══════════╦═════════════╦═════════════╦═════════╗ 
║ DATE ║ TIME  ║ PHONE ║ MESSAGE ║ 
╠══════════╬═════════════╬═════════════╬═════════╣ 
║ 25/09/07 ║ 01:57:55 PM ║ 62856979898 ║ Tes a ║ 
║ 25/09/07 ║ 04:56:51 PM ║ 62856123467 ║ Tes B ║ 
╚══════════╩═════════════╩═════════════╩═════════╝ 

如何查詢找到數據,其中時間之間的日期。

+1

如何你能拿一個日期,並與時間比較嗎? – hjpotter92 2013-03-25 08:43:18

+0

什麼類型是日期字段? – Uby 2013-03-25 08:43:20

+0

http://stackoverflow.com/questions/4125931/mysql-combining-date-and-time-column-into-a-time-stamp – 2013-03-25 08:43:59

回答

4

這是在數據庫中沒有正確存儲數據類型的缺點之一。日期應保存爲DATEDATETIME

如果使用的是MySQL,您可以使用STR_TO_DATE它轉換成字符串日期,

SELECT * 
FROM tableName 
WHERE STR_TO_DATE(CONCAT(date, ' ', time), '%d/%m/%y %h:%i:%s %p') 
     BETWEEN '2007-09-25 13:00:00' AND '2007-09-25 14:00:00' 

輸出

╔══════════╦═════════════╦═════════════╦═════════╗ 
║ DATE ║ TIME  ║ PHONE ║ MESSAGE ║ 
╠══════════╬═════════════╬═════════════╬═════════╣ 
║ 25/09/07 ║ 01:57:55 PM ║ 62856979898 ║ Tes a ║ 
╚══════════╩═════════════╩═════════════╩═════════╝ 

當前的設計的一些缺點:

  • 不能直接比較的日期和時間
  • 不能使用索引
  • 等...
+1

+1好主意:) – 2013-03-25 08:49:28

0

使用BETWEEN關鍵字

"SELECT * FROM table_A WHERE date BETWEEN '" . $from_date . "' AND '" . $to_date . "'" 
+0

那些看起來不像日期字段。另外,最好使用準備好的語句。 – Uby 2013-03-25 09:18:47