我有一张有dates
的桌子,我希望在两个日期之间找到日期。
对于created_date
表字段,我使用了timestamp
类型。现在我创建了以下sql查询来查找2015-04-15 to 2015-04-21
之类的日期之间的记录。
id created_date
** *******************
10 2015-04-15 10:49:26
13 2015-04-17 09:49:06
14 2015-04-21 14:59:42
15 2015-05-20 14:26:07
16 2015-06-11 13:25:34
SELECT *
FROM table
WHERE created_date
BETWEEN '2015-04-15'
AND '2015-04-21'
ORDER BY created_date DESC
LIMIT 0 , 10
当我使用上表中的timestamp
类型时,sql无法工作因为我正在与此数据格式YYYY-MM-DD
进行比较。我希望使用timestamp
类型来获取记录,并且不希望从表中更改但是在不读取HH:MM:SS
的情况下获取结果。
例如,如果我使用这两个日期进行搜索:2015-04-15 to 2015-04-21
我想要这些记录:
id created_date
** *******************
10 2015-04-15 10:49:26
13 2015-04-17 09:49:06
14 2015-04-21 14:59:42
任何想法如何获得这样的记录:)
感谢。
答案 0 :(得分:0)
您必须使用
之类的查询SELECT *
FROM table
WHERE created_date
BETWEEN '2015-04-15 00:00:00'//add 00:00:00
AND '2015-04-21 23:59:59'// add 23:59:59
ORDER BY created_date DESC
LIMIT 0 , 10
答案 1 :(得分:0)
您可以使用MySQl Configuration file [] is not valid, could not configure the toolmanager.
。
DATE()
答案 2 :(得分:0)
你看过UNIX_TIMESTAMP()吗?例如:
SELECT *
FROM table
WHERE created_date
BETWEEN UNIX_TIMESTAMP('2015-04-15 00:00:00')
AND UNIX_TIMESTAMP('2015-04-21 23:59:59')
ORDER BY created_date DESC
LIMIT 0, 10
OR
SELECT *
FROM table
WHERE created_date
>= UNIX_TIMESTAMP('2015-04-15 00:00:00')
AND created_date <= UNIX_TIMESTAMP('2015-04-21 23:59:59')
ORDER BY created_date DESC
LIMIT 0, 10
上面只是一个例子。
使用DATETIME类型进行更多优化是理想的选择,查询更加容易。我真的很想看到这个。
答案 3 :(得分:0)
试试这个
SELECT *
FROM table
WHERE created_date
BETWEEN '2015-04-15 00:00:00'
AND '2015-04-21 23:59:59'
ORDER BY created_date DESC
LIMIT 0 , 10