我需要比较一个数据库的datetime2属性和另一个数据库的datetime属性,因为我找不到将datetime转换为datetime2的方法。
我测试了这个句子:
select CAST(FechaAlta AS datetime) from tutors
但是返回以下错误信息:
将datetime2数据类型转换为datetime数据类型时,结果超出范围。
我需要比较一个数据库的datetime2属性和另一个数据库的datetime属性,因为我找不到将datetime转换为datetime2的方法。
我测试了这个句子:
select CAST(FechaAlta AS datetime) from tutors
但是返回以下错误信息:
将datetime2数据类型转换为datetime数据类型时,结果超出范围。
datetime2
数据类型的范围比 datetime
更广 - datetime2
可以保存任何日期,从 0001-01-01
到 9999-12-31
,而 datetime
从 01/01/1753
开始(其中涉及了第四代切斯特菲尔德伯爵的不太明显的原因,这些原因在此处讨论起来过于深奥)。datetime2
转换为 datetime
,你必须处理超出范围的值,例如:SELECT CASE WHEN FechaAlta < '1753-01-01' THEN NULL ELSE CAST(FechaAlta AS DateTime) END AS FechaAlta_As_DateTime FROM Tutors
首先,将datetime2和datetime转换为相同的datetime
格式。假设它们都是date datatype
类型,并且你正在使用Oracle
。
TO_DATE(TO_CHAR(DATETIME2,'YYYYMMDD HH24:MI:SS')) = TO_DATE(TO_CHAR(DATETIME,'YYYYMMDD HH24:MI:SS'))