sql >> データベース >  >> RDS >> Sqlserver

日付のミリ秒を省略する

    DATETIME2を使用する 、分数精度をサポートするSQL Server 2008の新しいデータ型:

    SELECT
      CONVERT(DATETIME2(0),SYSDATETIME()) [yyyy-mm-dd hh:mm:ss]
    , CONVERT(DATETIME2(1),SYSDATETIME()) [yyyy-mm-dd hh:mm:ss.f]
    , CONVERT(DATETIME2(2),SYSDATETIME()) [yyyy-mm-dd hh:mm:ss.ff]
    , CONVERT(DATETIME2(3),SYSDATETIME()) [yyyy-mm-dd hh:mm:ss.fff]
    , CONVERT(DATETIME2(4),SYSDATETIME()) [yyyy-mm-dd hh:mm:ss.ffff]
    , CONVERT(DATETIME2(5),SYSDATETIME()) [yyyy-mm-dd hh:mm:ss.fffff]
    , CONVERT(DATETIME2(6),SYSDATETIME()) [yyyy-mm-dd hh:mm:ss.ffffff]
    , CONVERT(DATETIME2(7),SYSDATETIME()) [yyyy-mm-dd hh:mm:ss.fffffff]
    

    変換は最も近い単位に丸められます。例:

    2014-09-04 09:35:47.0162993 as DATETIME2(4) -> 
    2014-09-04 09:35:47.0163
    

    または、SQL 2005以降の場合:

    SELECT
      original  = GETDATE()
    , [floor]   = DATEADD(ms,-DATEPART(ms,GETDATE()),GETDATE())
    , [ceiling] = DATEADD(ms,1000-DATEPART(ms,GETDATE()),GETDATE())
    , [rounded] = DATEADD(ms,CASE WHEN DATEPART(ms,GETDATE()) < 500 THEN 0 ELSE 1000 END-DATEPART(ms,GETDATE()),GETDATE())
    

    これは、文字列表現との間で変換するよりも少し高速です。



    1. Rails 3、ActiveRecord、PostgreSQL-.uniqコマンドが機能しませんか?

    2. MySQL-計算列で注文するときのパフォーマンス

    3. カンマ区切りリストMySQLのアイテムをカウントする方法

    4. SQLServer2008の列の千単位の区切り記号