SQL查询:从SQL日期时间中查找“day”值

SQL查询:从SQL日期时间中查找“day”值,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个带有timeout和timein字段的表。我需要返回一个记录列表,其中timeout与timein在不同的日期。如何实现此目标?如果两个日期在同一个月内,则: select * from table where DAY(timeout) <> DAY(timein0) 或 会有用的 但是,如果它们可能在不同的月份,那么您需要比较完整的日期。这将为您做到这一点: select * from table where DATEDIFF(day,timeout,timein)

我有一个带有timeout和timein字段的表。我需要返回一个记录列表,其中timeout与timein在不同的日期。如何实现此目标?

如果两个日期在同一个月内,则:

select * 
from table 
where DAY(timeout) <> DAY(timein0) 

会有用的

但是,如果它们可能在不同的月份,那么您需要比较完整的日期。这将为您做到这一点:

select *
from table
where DATEDIFF(day,timeout,timein) <> 0

如果两个日期在同一个月内,则:

select * 
from table 
where DAY(timeout) <> DAY(timein0) 

会有用的

但是,如果它们可能在不同的月份,那么您需要比较完整的日期。这将为您做到这一点:

select *
from table
where DATEDIFF(day,timeout,timein) <> 0
这个怎么样:

select *
from table
where day(timeout) != day(timein);
这个怎么样:

select *
from table
where day(timeout) != day(timein);
如果你想第二天休息的话

select * 
from table_name 
where datediff(dd,timein,timeout) =1
如果你想第二天休息的话

select * 
from table_name 
where datediff(dd,timein,timeout) =1

注:这两个示例都给出了月份的日期。如果您有从1月1日到2月1日的数据,这种方法将失败。如果您尽可能保证数据永远不会扩展到一个月,即使在极端或有问题的情况下,它也可以正常工作。DATEDIFF的各种可能用途都不会受到这个问题的影响。我仍然会留下其他答案,只需注意其行为。如果数据运行正常,DAYtimein是相当整洁的。或者:casttimein作为日期casttimeout作为日期注:这两个示例都给出了月份的日期。如果您有从1月1日到2月1日的数据,这种方法将失败。如果您尽可能保证数据永远不会扩展到一个月,即使在极端或有问题的情况下,它也可以正常工作。DATEDIFF的各种可能用途都不会受到这个问题的影响。我仍然会留下其他答案,只需注意其行为。如果数据运行正常,DAYtimeout DAYtimein相当整洁。或者:casttimein as DATE casttimeout as DATE为什么要将MySQL链接发布到SQL Server问题?此语法在mssql中也有效。问题是它并没有比较月份和年份,为什么要将MySQL链接发布到SQL Server问题?这种语法在mssql中也是有效的。问题是,它并没有比较月份和年份,或者,使用不同日期的OPs措辞,只使用0,或者使用不同日期的OPs措辞,只使用0