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

T-SQLの週番号から日付を取得する

    Quassnoiの答えは機能しますが、日付が1日の真ん中の日付である場合は、日付をクリーンアップするためのフックになります(彼の週の始まりは、真ん中の時間を使用する場合に必要な1日早くなります今日の-GETDATE()を使用してテストできます。

    私は過去にこのようなものを使用しました:

    SELECT 
       CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL), DATECOL)), 101),
       CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL) - 6, DATECOL)), 101)
    

    これの副次的な利点は、@@ DATEFIRSTを使用することで、非標準の週の開始日を処理できることです(デフォルトは日曜日ですが、SET @@ DATEFIRSTを使用すると、これを変更できます)。

    SQL Serverでの単純な日付操作がこの難解なものでなければならないのはおかしなことに思えますが、そこに行きます...



    1. データモデリングにおけるERD表記

    2. GUIDのSCOPE_IDENTITY()?

    3. MySQLデータベースのパフォーマンスを提供するためのヒント-パート1-

    4. Oracle Locks&Table Locks:仕組み