如何将datetime2与datetime进行比较

时间:2015-07-24 14:09:14

标签: sql-server datetime sql-server-2014 datetime2

我需要将属性datetime2与一个数据库与属性datetime进行比较,因为我没有找到将datetime转换为datetime2的方法。

我测试了这句话:

select CAST(FechaAlta AS datetime) from tutors

但返回此错误消息:

  

将datetime2数据类型转换为日期时间数据类型会导致超出范围的值。

2 个答案:

答案 0 :(得分:2)

datetime2数据类型的范围大于datetime - datetime2可以保留0001-01-019999-12-31之间的任何日期,而datetime01/01/1753开始(对于第四届切斯特菲尔德伯爵而言,这个模糊的原因在这个时刻太过神秘了)。

如果要将datetime2转换为日期时间,则必须处理超出范围的值,例如:

SELECT CASE WHEN FechaAlta < '1753-01-01' THEN NULL ELSE CAST(FechaAlta AS DateTime) END AS FechaAlta_As_DateTime FROM Tutors

答案 1 :(得分:-1)

首先以相同的datetime格式获取datetime2和datetime。假设它们都是date datatype并且您正在处理Oracle

TO_DATE(TO_CHAR(DATETIME2,'YYYYMMDD HH24:MI:SS')) = TO_DATE(TO_CHAR(DATETIME,'YYYYMMDD HH24:MI:SS'))