【问题标题】:Custom datatype operators in Sql Server?Sql Server 中的自定义数据类型运算符?
【发布时间】:2009-08-21 15:15:44
【问题描述】:

在 Sql Server 2008 中,他们添加了新的 DATE 和 TIME 数据类型,作为 DATETIME 的补充。
我想将 DATE 和 TIME 结合到 DATETIME,并认为显而易见的方法可能会起作用,我可以这样做

SELECT DATEFLD + TIMEFLD FROM MYTABLE

并且 DATE + TIME 将返回相应的 DATETIME。不幸的是,这有点太明显了,并没有奏效。所以我想知道,Sql Server 是否有任何方法来覆盖运算符,为 "+" 创建一个覆盖来处理 DATE + TIME => DATETIME 。

【问题讨论】:

    标签: sql-server-2008 operators operator-overloading


    【解决方案1】:

    先转换为 smalldatetime

    DECLARE @d date, @t time
    
    SELECT @d = getdate(), @t = getdate()
    
    SELECT cast(@d as smalldatetime) + cast(@t as smalldatetime)
    

    我不记得我在哪里看到的,也不记得为什么。对不起

    幸运的是,SQL 不提供重载...

    【讨论】:

    • 有趣,这确实有效,虽然看起来有点奇怪。我还收到了一些值的转换错误……我现在对追踪它并不感兴趣。但有趣的是知道这在大多数情况下都有效。感谢您的信息!
    猜你喜欢
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 2014-05-16
    • 2018-07-23
    相关资源
    最近更新 更多