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

T-SQLで日付と時刻の形式を変更する方法

    問題:

    SQLServerデータベースの日付フィールドまたは値の形式を変更したい。

    例:

    私たちのデータベースには、Patient Id列にデータがあります 、FirstNameLastName 、およびRegistrationDate

    Id FirstName LastName RegistrationDate
    1 ジェーン ウィリアムズ 2019-06-20
    2 ガブリエル ブラウン 2019-02-02
    3 ロラ フォーク 2016-11-05

    各患者の登録日の形式を変更しましょう。最初に平日の名前を入力し、次に月の日と名前、4桁の年を入力します(例:「2019年12月27日金曜日」)。

    解決策:

    FORMAT()関数を使用して、RegistrationDateの日付の形式を変更します 列。

    SELECT  FirstName,
            LastName,
            FORMAT(RegistrationDate ,'dddd, d MMMM, yyyy')
              AS FormattedRegistrationDate
    FROM Patient;
    

    クエリの結果は次のとおりです。

    FirstName LastName FormattedRegistrationDate
    ジェーン ウィリアムズ 2019年6月20日木曜日
    ガブリエル ブラウン 2019年2月2日土曜日
    ロラ フォーク 2016年11月5日土曜日

    ディスカッション:

    FORMAT()関数を使用して、特定の日付の表示方法を変更できます。この関数は、2つの必須引数と1つのオプションの引数を取ります。この例では、2つの必須の引数のみを使用しました。 1つ目は日付です。これは、日付/時刻/日時の列、または日付または時刻を返す任意の式から取得できます。 (この例では、列RegistrationDateを使用します 。)2番目の引数は、新しい日付形式を含む文字列です。この例では、'dddd、dd MMMM、yyyy'を使用しました :

    • dddd –曜日の名前。
    • d –1から31までの月の日。
    • MMMM –その月のフルネーム。
    • yyyy –4桁の年。

    次の表は、その他の日付/時刻形式指定子を示しています。

    指定子 説明
    d 1〜31の範囲の日
    dd 01〜31の範囲の日
    ddd 曜日の省略名
    dddd 曜日のフルネーム
    M 1から12までの月
    MM 01から12までの月
    MMM 月の略称
    MMMM 今月のフルネーム
    y 2桁の年、0から99まで
    yy 00から99までの2桁の年
    yyyy 4桁の年
    g 時代(例:西暦)
    h 1から12までの時間(12時間時計)
    hh 01から12までの時間(12時間時計)
    H 0から23までの時間(24時間制)
    HH 00から23までの時間(24時間制)
    m 0から59までの分
    mm 00から59までの分
    s 0から59までの2番目
    ss 00から59までの2番目
    t AMまたはPMの最初の文字(例:9A、5P)
    tt AMまたはPM
    z 先行ゼロなしの時間オフセット(例:+3)
    zz 時間オフセット、先行ゼロ(例:+03)

    標準の日付と時刻の形式とカスタム形式については、Microsoftのドキュメントで詳細を確認できます。

    この日付を特定の言語や国に合わせてフォーマットする場合は、3番目のオプションの引数を使用します:文化 。この引数は、特定の地域または国のカルチャコードを含む文字列です。 (カルチャコードは、言語コード、ダッシュ、および国コードで構成されます。)以下の例では、ドイツの言語コード('de')とドイツの国コードを組み合わせたドイツのカルチャコードを使用します。 ('DE')、つまり'de-DE'。結果の日付はドイツ語で表示され、ドイツの視聴者が期待するとおりにフォーマットされます。

    SELECT  FirstName,
            LastName,
            FORMAT(RegistrationDate ,'dddd, d MMMM, yyyy', 'de-DE')
              AS FormattedRegistrationDate
    FROM Patient;
    

    このクエリの結果は次のとおりです。

    FirstName LastName RegistrationDate
    ジェーン ウィリアムズ Donnerstag、2019年6月20日
    ガブリエル ブラウン Samstag、2019年2月2日
    ロラ フォーク Samstag、2016年11月5日

    1. SQL Server T-SQL関数の使用方法SUM:5つのユースケース

    2. mysqlは、動的な行の値を列名として選択し、別の列を値として選択します

    3. mysqlのダンプとインポートの高速化

    4. MySQLサーバーがなくなりました-ちょうど60秒で