【问题标题】:Remove milliseconds from time datatype and also: is there a millisecond-less time datatype?从时间数据类型中删除毫秒,并且:是否有毫秒时间数据类型?
【发布时间】:2013-02-22 06:00:33
【问题描述】:

我在问题中看到了有关如何从 MS SQL 中的日期时间数据类型中删除毫秒数的帖子。

但是时间数据类型呢?从时间数据类型中删除毫秒的最简单方法是什么?

另外:MS SQL (2008) 中是否有任何时间数据类型不包括毫秒?

谢谢大家!

【问题讨论】:

    标签: sql-server-2008 types time type-conversion


    【解决方案1】:

    删除毫秒的最简单方法之一是:

    SELECT CONVERT(VARCHAR, GETDATE(), 20) 
    

    如果你不想包括毫秒:

    TIME(0) will help
    

    例子

    CAST(DATEADD(second, SUM(hora), '00:00:00') AS time(0))
    

    【讨论】:

    • 这非常方便。优雅而有效。
    • 这个真的很有效。我找到的其他解决方案,它仍然显示最后 3 位数字为 000。
    【解决方案2】:

    如果您只想返回 sql server 2005 中的时间,您可以使用带有转换的子字符串函数,即 SELECT SUBSTRING(CONVERT(VARCHAR,GETDATE(),20),12,8)。 这将以 hh:mm:ss 格式返回时间。

    【讨论】:

      【解决方案3】:

      我为 MS SQL Server 2005 解决这个问题所做的是

      create table mytable (Date varchar(11))
      
      insert into mydb.mytable select GETDATE() as Date;
      

      这会从 GETDATE() 中删除一些值,就在年份部分的最后一个数字之后。即“2014 年 1 月 9 日”。

      编辑:要清楚,varchar(11) 是这里的解决方案。

      编辑:如果你必须加入 mysql CURDATE(),这个解决方案很糟糕,因为 mysql 返回所有整数,而 MSSQL Server 有字母月份。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多