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

SQLSelectの今後の誕生日

    注:重大なバグであると思われるものを修正するためにこれを編集しました。現在投稿されているバージョンは私のために機能します。

    これは、データベースに対応するようにフィールド名とテーブル名を変更した後に機能するはずです。

    SELECT 
      BRTHDATE AS BIRTHDAY
     ,FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()) / 365.25) AS AGE_NOW
     ,FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()+7) / 365.25) AS AGE_ONE_WEEK_FROM_NOW
    FROM 
      "Database name".dbo.EMPLOYEES EMP
    WHERE 1 = (FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()+7) / 365.25))
              -
              (FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()) / 365.25))
    

    基本的に、誕生日から現在までの日数を取得し、それを365で除算します(直接年に変換するときに発生する丸めの問題を回避するため)。

    次に、誕生日から1週間後までの日数を取得し、それを365で割って、1週間後の年齢を取得します。

    誕生日が1週間以内の場合、これら2つの値の差は1になります。したがって、これらのすべてのレコードが返されます。



    1. MySQLで累積合計を計算する方法

    2. Transact-SQLを使用してストアドプロシージャの定義を取得する4つの方法

    3. ポーカー、ブラックジャック、ベロット、プレフェレンスはデータベースと何の関係がありますか?

    4. PostgreSQLでの数値フォーマット用のテンプレートパターンと修飾子