我有一台将日志生成到数据库中的设备。
我需要查询数据库
查询1 =给我表01中TODAY的所有记录和列
Query2 =给我表01中YESTERDAY的所有记录和列
我遇到的问题是日期字段的格式不完全是一种很好的mm-dd-yyyy
格式。
字段是:
datetime, device, controlnumber, result
datetime字段输出的数据看起来像这样yyyy-mm-ddTHH:MM:SS
(不确定为什么会有T
,只是可能只是简单地说这是时间):
2018-07-16T13:34:00
2018-07-16T18:15:00
2018-07-16T18:33:00
2018-07-16T18:50:00
2018-07-16T19:02:00
谁能快速帮助我(我知道这是不对的):
select * from table01
where datetime = Today()
and datetime = Yesterday()
Order by controlnumber
答案 0 :(得分:1)
在标准SQL中,您今天需要这样做:
select t.*
from table01 t
where t.datetime >= current_date and
t.datetime < current_date + interval '1 day'
Order by controlnumber;
昨天类似:
select t.*
from table01 t
where t.datetime >= current_date - interval '1 day' and
t.datetime < current_date
Order by controlnumber;
仅因为这是标准SQL,并不意味着所有数据库都支持它。但是,尽管语法可能会有所不同,但所有数据库都支持日期算术。
答案 1 :(得分:0)
我认为最简单的方法是使用DATEDIFF()函数,如下所示:
SELECT * FROM Ttable
WHERE DATEDIFF(day,Ttable.DatetimeColumn ,GETDATE()) = 0 -- For today
SELECT * FROM Ttable
WHERE DATEDIFF(day,Ttable.DatetimeColumn ,GETDATE()) = 1 -- For yesterday