SQL server如何赛选本月每天00:00:00到15:00:00的数据
SELECT *
FROM TABLE
WHERE time>= DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) + '00:00:00'
AND time<= DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) + '15:00:00'
SELECT *
FROM your_table
WHERE YourDateTimeColumn >= DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) -- 今天的0点
AND YourDateTimeColumn < DATEADD(day, DATEDIFF(day, 0, GETDATE()), 1) -- 明天的0点
AND DATEPART(hour, YourDateTimeColumn) >= 0 -- 小时数 >= 0
AND DATEPART(hour, YourDateTimeColumn) < 15 -- 小时数 < 15
不知道你这个问题是否已经解决, 如果还没有解决的话:可以使用以下SQL语句来筛选出当前月份每天00:00:00至15:00:00之间的数据:
SELECT *
FROM your_table
WHERE Date >= DATEADD(day, DATEDIFF(day, '19000101', GETDATE()), '19000101')
AND Date >= DATEADD(hour, 0, DATEDIFF(hour, 0, GETDATE()))
AND Date < DATEADD(hour, 15, DATEDIFF(hour, 0, GETDATE()))
其中,'your_table'为你要查询的表名,'Date'为你要筛选的日期字段名。
解释:
DATEADD(day, DATEDIFF(day, '19000101', GETDATE()), '19000101')
用于获取当前日期的日期部分。这是通过计算当前日期与'1900-01-01'之间的天数差得出的。DATEADD(hour, 0, DATEDIFF(hour, 0, GETDATE()))
用于获取当前日期的时间戳的小时部分,计算方式是将当前日期减去0小时的时间戳。DATEADD(hour, 15, DATEDIFF(hour, 0, GETDATE()))
用于获取当前日期的时间戳的小时部分加上15小时的时间戳。综合以上三个条件即可筛选出当前月份每天00:00:00至15:00:00之间的数据。
注意,以上代码中的GETDATE()函数会返回数据库服务器的当前日期和时间,因此需要根据需要进行时区调整。