查询SQL日期和时间(CLOSED)
问题描述:
请帮帮我。我有表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 ║
╚══════════╩═════════════╩═════════════╩═════════╝
如何查询找到数据,其中时间之间的日期。
答
这是在数据库中没有正确存储数据类型的缺点之一。日期应保存为DATE
或DATETIME
。
如果使用的是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
答
使用BETWEEN
关键字
"SELECT * FROM table_A WHERE date BETWEEN '" . $from_date . "' AND '" . $to_date . "'"
+0
那些看起来不像日期字段。另外,最好使用准备好的语句。 – Uby 2013-03-25 09:18:47
如何你能拿一个日期,并与时间比较吗? – hjpotter92 2013-03-25 08:43:18
什么类型是日期字段? – Uby 2013-03-25 08:43:20
http://stackoverflow.com/questions/4125931/mysql-combining-date-and-time-column-into-a-time-stamp – 2013-03-25 08:43:59