我需要将一个数据库的属性 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
datetime
首先以相同的格式获取 datetime2 和 datetime 。假设他们都属于date datatype
并且你正在努力Oracle
TO_DATE(TO_CHAR(DATETIME2,'YYYYMMDD HH24:MI:SS')) = TO_DATE(TO_CHAR(DATETIME,'YYYYMMDD HH24:MI:SS'))