我有一个表格,其中文件上传时间存储为datetime变量,其值很大,如2013-12-15 22:30:00.030。
如何使用(不包括时间)获取在两个日期之间上传的记录数据。 因为如果我使用下面的命令我会收到错误
select * from story where DateCreated ='2013-12-15'(not working)
select * from story where DateCreated ='2013-12-15 22:30:00.030' (working but I don't want to specify time)
我想要一个像这样的查询:
select * from story where DateCreated ='2013-12-15'
答案 0 :(得分:0)
如果您需要获取指定日期的记录,它将对您有所帮助:
`select * from story where DateCreated>=DATE('2013-12-15 22:30:00.030') and DateCreated<DATE_ADD(DATE('2013-12-15 22:30:00.030'), INTERVAL 1 DAY)`
答案 1 :(得分:0)
检查数据库实现是否有将日期/时间组合转换为日期的内容。例如在MySQL中,你可以做到
select * from story where date(DateCreated) ='2013-12-15'
答案 2 :(得分:0)
如果只想查询日期时间列的日期部分,可以将列强制转换为在选择中键入日期:
select * from story where CAST(DateCreated As Date) ='2013-12-15'
答案 3 :(得分:0)
这将检查文件是否按特定时间间隔上传,例如2013年12月15日:
select * from story
WHERE DateCreated >= CAST('20131215' AS DATETIME)
AND DateCreated < DATEADD(DAY, 1, CAST('20131215' AS DATETIME))
答案 4 :(得分:0)
日期函数通常不利用索引(如其他答案中所指出的那样),所以像下面这样的东西会更好。
而不是:
SELECT *
FROM story
WHERE datecreated = '2013-12-15'
使用:
SELECT *
FROM story
WHERE datecreated >= '2013-12-15'
AND datecreated < '2013-12-16'