我有一个用日期格式填充的列,这个列对另一个应用程序很有用,但对时间戳不是mysql格式。这是它的样子:
2010.01.28 12:00
(“time”列)而不是mysql时间戳:2010-01-28 12:00:00
(“updatetime”列)。
我需要在两个时间段之间进行特定于日期的搜索,对于正常的mysql时间戳,我会运行它:
SELECT * FROM table WHERE updatetime BETWEEN '$dateStart' and '$dateEnd'
但这不适用于按时格式化的“时间”列。我宁愿保持该列格式化,因为不同的应用程序需要日期格式,所以有人知道MYSQL方式用2010.01.28 12:00
格式搜索BETWEEN两个时间段吗?从PHP脚本运行
答案 0 :(得分:4)
您可以在PHP或MySQL中以相同格式格式化时间
WHERE updatetime BETWEEN
date_format('$datestart','%Y.%m.%d %H:%s')
AND date_format('$dateend','%Y.%m.%d %H:%s')
答案 1 :(得分:2)
你可能想尝试这样的事情
SELECT * FROM table WHERE STR_TO_DATE(updatetime, "%d.%m.%Y %h:%i")
BETWEEN '$dateStart' and '$dateEnd'
将字符串转换为日期 - 即$ dateStart和$ dateEnd的值已经采用正确的格式与sql日期进行比较