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

SQL Server で正確な年齢を年月日形式で表示する方法

    こんにちは、以下のクエリを確認してください。

    --DROP TABLE patient
    CREATE TABLE patient(PatName varchar(100),DOB date,  Age varchar(100))
    INSERT INTO patient
    VALUES('a','06/02/1947',NULL),('b','07/10/1947',NULL),('c','12/21/1982',NULL)
    
    ;WITH CTE(PatName,DOB,years,months,days) AS 
    (SELECT PatName,DOB,DATEDIFF(yy,DOB,getdate()),DATEDIFF(mm,DOB,getdate()),DATEDIFF(dd,DOB,getdate()) FROM patient)
    
    --SELECT * FROM CTE
    
    SELECT PatName,DOB,
          CAST(months/12 as varchar(5))+' Years'+CAST((months % 12) as varchar(5))+' month/s '+CAST(CASE WHEN DATEADD(MM,(months % 12),DATEADD(YY,(months/12),DOB)) <= GETDATE() then DATEDIFF(dd,DATEADD(MM,(months % 12),DATEADD(YY,(months/12),DOB)),GETDATE()) ELSE DAY(getdate()) END as varchar(5))+' days' as Age
    
    FROM CTE
      

    1. MS-SQLServerのエイリアス列でGROUPBYを実行するにはどうすればよいですか?

    2. MySQL InnoDB挿入パフォーマンス(Windows)

    3. PostgreSQLの複数列の部分インデックスに日時制約を追加する

    4. 高可用性のためのMySQLレプリケーション