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

SQLiteで日時をフォーマットする方法

    問題:

    SQLiteで日時の列または値をフォーマットしたい。

    例:

    私たちのデータベースには、ticketpassenger_IDにデータがあります 、train_number 、およびsale_datetime

    passenger_ID train_number sale_datetime
    245NX 4505 2019-10-17 12:56:30
    127RG 3403 2019-10-17 11:45:23
    567FH 4505 2019-10-18 12:40:32
    230AP 6700 2019-10-18 13:20:20
    118BB 3403 2019-10-18 13:13:13

    チケットの販売ごとに、乗客ID、列車番号、販売日時を取得しましょう。販売日をスラッシュ(/)で区切って、年と時刻の間にコンマを入れて、日、月、年を表示するようにフォーマットします。セールの時間と分だけが必要です。

    作成するクエリは次のとおりです。

    解決策:

    SELECT passenger_ID,
      train_number,
      STRFTIME('%d/%m/%Y, %H:%M', sale_datetime)
      AS sale_formatted_datetime 
    FROM ticket;
    

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

    passenger_ID train_number sale_formatted_datetime
    245NX 4505 2019年10月17日、12:56
    127RG 3403 2019年10月17日、11:45
    567FH 4505 2019年10月18日、12:40
    230AP 6700 2019年10月18日、13:20
    118BB 3403 2019年10月18日、13:13

    ディスカッション:

    STRFTIME()を使用します SQLiteでdate\time\datetimeデータをフォーマットする関数。この関数は2つの引数を取ります。最初の引数は、日付/時刻のパーツパターンを含むフォーマット文字列です。この例では、フォーマット文字列‘%d /%m /%Y、%H:%Mを使用します。 '。この文字列の内容:

    • %d 2桁の日です。
    • %m 2桁の月です。
    • %Y は4桁の年です。
    • %H 2桁の時間です。
    • %M 2桁の分です。

    SQLiteのドキュメントでより多くの日付と時刻の指定子を見つけることができます。

    2番目の引数は、フォーマットする時刻/日付/日時の値です。これは、時刻/日付/日時の値または時刻/日付/日時列の名前を返す式にすることができます。 (この例では、sale_datetime列です。 。)

    STRFTIME() フォーマットされた日付と時刻を返します。この例では、フォーマットされた日付と時刻に秒が含まれておらず、日付の部分はダッシュ(-)ではなくスラッシュ(/)で区切られています。


    1. android.database.sqlite.SQLiteException:near s:構文エラー(コード1):、

    2. SQL SELECTを使用して、最初のN個の正の整数を取得します

    3. 高いCLR_MANUAL_EVENT待機を追跡する

    4. Windowsコンピュータでmy.cnfが見つかりません