我需要将属性datetime2与一个数据库与属性datetime进行比较,因为我没有找到将datetime转换为datetime2的方法。
我测试了这句话:
select CAST(FechaAlta AS datetime) from tutors
但返回此错误消息:
将datetime2数据类型转换为日期时间数据类型会导致超出范围的值。
答案 0 :(得分:2)
datetime2
数据类型的范围大于datetime
- datetime2
可以保留0001-01-01
和9999-12-31
之间的任何日期,而datetime
从01/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'))