如何使用 SQL 比较两个日期值 [重复]

Posted

技术标签:

【中文标题】如何使用 SQL 比较两个日期值 [重复]【英文标题】:How to compare two date values using SQL [duplicate] 【发布时间】:2013-07-22 23:24:45 【问题描述】:

如何比较两个日期第一列表一个 2013-04-04 05:47:52.000 第二个来自另一个表 2010-01-01 00:00:00.000。 我只想比较年/月/日;如果它们相等,我会得到第二个 id 表。

【问题讨论】:

你用的是什么数据库? 【参考方案1】:

对于 Sql Server,您可以这样做:

CAST(table1date AS DATE) = CAST(table2date AS DATE)

如何使用它的示例:

declare @dateTime1 as datetime = '2013-04-04 05:47:52.000'
declare @dateTime2 as datetime = '2013-04-04 00:00:00.000'

if CAST(@dateTime1 AS DATE) = CAST(@dateTime2 AS DATE)
    print 'yy mm dd is the same'
else
    print 'not the same'

或者使用表格:

declare @dateTime1 as datetime = '2013-04-04 05:47:52.000'
declare @dateTime2 as datetime = '2011-04-04 00:00:00.000'

declare @table1 table (id1 int, dt1 datetime)
declare @table2 table (id2 int, dt2 datetime, table1id int)
insert into @table1 values (1, @dateTime1)
insert into @table2 values (2, @dateTime2, 1)

select case when CAST(@dateTime1 AS DATE) = CAST(@dateTime2 AS DATE) then t2.id2 else t2.table1id end as id
from @table1 t1 join @table2 t2 on t1.id1 = t2.table1id

【讨论】:

我使用这个数据库***.com/questions/17743900/… 我尝试了此代码,但出现错误:消息 4104,级别 16,状态 1,第 4 行无法绑定多部分标识符“dbo.FACT_TABLE.DATE_DEBUT_ALRM”。将 fact_table 合并为目标,使用(从 dbo.dim_date_Debut 中选择前 1 个 idDateDeb,PK_Date,Week_Of_Year)作为演员表的来源(source.PK_Date 作为日期)=cast(dbo.FACT_TABLE.DATE_DEBUT_ALRM 作为日期)匹配然后更新设置 target.ID_TEMP_DEB= source.idDateDeb; @user2586714,我不确定您是如何使用代码的,但我添加了一个工作示例。看看有没有帮助 我想在通过比较来自 fact_table 和日历的日期并获取 Id 和 numberOfWeek 插入的 fact_table id_date_deb 和 id_date_fin 上添加数据时进行触发器 @user2586714,第二个使用表格的例子有帮助吗?【参考方案2】:
IF CAST(DateField1 AS DATE) = CAST(DateField2 AS DATE)

【讨论】:

【参考方案3】:

比较的意思是找不同?

怎么样

DATEDIFF(datepart,startdate,enddate)

http://www.w3schools.com/sql/func_datediff.asp

【讨论】:

以上是关于如何使用 SQL 比较两个日期值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用mysql计算两个日期之间的时间差

试图找到如何在两个日期之间从 SQL 数据库中提取数据 [重复]

SQL如何按条件取唯一值?

如何在 SQL Server 2008 的 where 子句中仅比较日期并忽略时间

如何使用 IF 条件与 SQL 比较日期

SQL语句中怎样比较两个日期的大小?