sql - BETWEEN具有奇怪时间戳的时间帧

时间:2011-02-02 20:00:04

标签: php sql mysql database

我有一个用日期格式填充的列,这个列对另一个应用程序很有用,但对时间戳不是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脚本运行

2 个答案:

答案 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日期进行比较