如何使用 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 比较两个日期值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
试图找到如何在两个日期之间从 SQL 数据库中提取数据 [重复]