如何比较datetime2和datetime?

6

我需要比较一个数据库的datetime2属性和另一个数据库的datetime属性,因为我找不到将datetime转换为datetime2的方法。

我测试了这个句子:

select CAST(FechaAlta AS datetime) from tutors

但是返回以下错误信息:

将datetime2数据类型转换为datetime数据类型时,结果超出范围。


1
https://dev59.com/82s05IYBdhLWcg3wNPE3#7393350 - FutbolFan
2个回答

4
datetime2 数据类型的范围比 datetime 更广 - datetime2 可以保存任何日期,从 0001-01-019999-12-31,而 datetime01/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

-2

首先,将datetime2和datetime转换为相同的datetime格式。假设它们都是date datatype类型,并且你正在使用Oracle

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

问题被标记为[tag:sql-server],而不是[tag:oracle]。错误消息也明显是SQL Server的“风味”。 - Damien_The_Unbeliever

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接