sqlserver上的sql日期时间

时间:2018-08-20 13:57:14

标签: sql sql-server

在表上具有修改的字段列。 当我在下午2:45上班时,想要先获取在凌晨3:30之后修改过的数据

当我在上午3:30进行相同的工作时,我想获取昨天下午2:45之后修改过的数据

如何在sql server上为此编写sql?

员工表 名称 年龄 街 市 州 邮政编码 创立日期 由...制作 修改日期 Modified_By

今天,如果我运行此sql @ 3:30,我想获取昨天2:45 pm之后得到Modified_Date的数据

今天,如果我运行此sql @ 2:45 pm,想获取凌晨3:30之后得到Modified_Date的数据

希望我很清楚我在寻找什么。

2 个答案:

答案 0 :(得分:1)

想要DATEADD的声音带有负值。

select
*
from YourTable
where YourDateTimeColumn >= dateadd(minute,-1395,getdate())

如果要使用变量来确保0300

declare @date datetime = (select cast(cast(getdate() as date) as varchar) + ' 03:30:00')

select @date

    select
    *
    from YourTable
    where YourDateTimeColumn >= dateadd(minute,-1395,@date)

答案 1 :(得分:0)

select *
from table
where Modified > case when cast(getdate() as time) < '14:45:00'
                      then dateadd(day,datediff(day,0,getdate())-1,0) + cast('14:45:00' as datetime)
                      else dateadd(day,datediff(day,0,getdate()),0) + cast('03:30:00' as datetime)
                      end