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

DATEFIRSTに従って日付の週番号を見つける方法

    初日を Tuesday に設定します

    SET DATEFIRST 2
    

    次のクエリを実行します

    DECLARE @FROMDATE DATE='31-Dec-2014'
    
    SELECT CAST(UPPER(DATENAME(YEAR, @FROMDATE)) AS VARCHAR(20))
    +'_'+CAST(UPPER(DATENAME(MONTH, @FROMDATE)) AS VARCHAR(20))
    +'_WEEK_NO_'+REPLACE(CAST((DAY(@FROMDATE) 
    + (DATEPART(DW, DATEADD (MONTH, DATEDIFF (MONTH, 0, @FROMDATE), 0))-1) -1)/7  AS VARCHAR(10)),'0','1')
    

    更新

    SET DATEFIRST 2
    
    DECLARE @FROMDATE DATE='12-JAN-2015'
    DECLARE @ALLDATE DATE=DATEADD(month, DATEDIFF(month, 0, @FROMDATE), 0)
    DECLARE @FIRSTDATE DATE
    
    
    ; WITH  CTE as
     (
         SELECT 1 RNO,CAST(@ALLDATE AS DATE) as DATES 
         UNION ALL
         SELECT RNO+1, DATEADD(DAY,1,DATES )
         FROM    CTE
         WHERE   DATES < DATEADD(MONTH,1,@ALLDATE)
     )
     SELECT TOP 1 @FIRSTDATE =   DATES 
     FROM    CTE 
     WHERE DATEPART(W,DATES)=1
    
    
    SELECT CAST(UPPER(DATENAME(YEAR, @FROMDATE)) AS VARCHAR(20))
    +'_'+CAST(UPPER(DATENAME(MONTH, @FROMDATE)) AS VARCHAR(20))
    +'_WEEK_NO_'+CAST((DATEDIFF(DAY,@FIRSTDATE,@FROMDATE)/7)+1  AS VARCHAR(10))
    


    1. ClusterControl1.5の発表-自動バックアップ検証とクラウドアップロードを搭載

    2. PL / SQLにファイルが存在するかどうかを確認する方法は?

    3. MySQLでテキスト列にデフォルト値を設定できないのはなぜですか?

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