SUBSTR関数とMOD関数で24時間表記を12時間表記に変換する
SQLiteで24時間表記の文字列を12時間表記の文字列にフォーマットする方法
例:
SELECT STRFTIME('%H:%M %p', '2024-04-01 13:23:45');
この例では、24時間表記の文字列 '2024-04-01 13:23:45'
を12時間表記の文字列 '01:23 PM'
にフォーマットしています。
フォーマット文字列:
STRFTIME()
関数のフォーマット文字列は以下の通りです。
%H
: 時 (24時間表記)%M
: 分%p
: 午前/午後 (AM/PM)
- 12時間表記の文字列と午前/午後の区別を表示する
SELECT STRFTIME('%I:%M %p', '2024-04-01 13:23:45');
出力例: 01:23 PM
SELECT STRFTIME('%I:%M', '2024-04-01 13:23:45');
注意事項:
- SQLiteのバージョンによっては、
STRFTIME()
関数の機能が異なる場合があります。詳細はSQLiteのドキュメントを参照してください。 - フォーマット文字列は、使用するデータベースやロケールによって異なる場合があります。
補足:
- 上記の例では、
STRFTIME()
関数を使用して、24時間表記の文字列を12時間表記の文字列にフォーマットする方法を紹介しました。 - その他にも、
strftime()
関数を使用して、日付や時刻をさまざまな形式でフォーマットすることができます。 - 詳細については、SQLiteのドキュメントやC++の標準ライブラリのドキュメントを参照してください。
- この情報は参考用であり、予告なく変更される場合があります。
- この情報を使用した結果生じたいかなる損害についても責任を負いません。
-- 24時間表記の文字列を12時間表記の文字列にフォーマットする
SELECT STRFTIME('%H:%M %p', '2024-04-01 13:23:45'); -- 出力: 01:23 PM
SELECT STRFTIME('%I:%M %p', '2024-04-01 01:23:45'); -- 出力: 01:23 AM
-- 12時間表記の文字列と午前/午後の区別を表示する
SELECT STRFTIME('%I:%M %p', '2024-04-01 13:23:45'); -- 出力: 01:23 PM
-- 12時間表記の文字列のみを表示する
SELECT STRFTIME('%I:%M', '2024-04-01 13:23:45'); -- 出力: 01:23
- 最初の例では、
STRFTIME('%H:%M %p', '2024-04-01 13:23:45')
を使用して、24時間表記の文字列'2024-04-01 13:23:45'
を12時間表記の文字列'01:23 PM'
にフォーマットしています。
実行方法:
- 上記のサンプルコードをSQLiteデータベースで実行します。
- 結果を確認します。
24時間表記を12時間表記に変換する他の方法
CASE式
SELECT CASE WHEN hour >= 12 THEN hour - 12
ELSE hour
END || ':' || minute ||
CASE WHEN hour >= 12 THEN ' PM'
ELSE ' AM'
END
FROM your_table;
- 上記のクエリは、
CASE
式を使用して、24時間表記の時間を12時間表記に変換します。 - 最初の
CASE
式は、時間 (hour
) が12より大きい場合は12を引いて、12より小さい場合はそのままの値を返します。 - 結果は、
hour
、minute
、AM/PM
を結合して表示されます。
SUBSTR関数とMOD関数
SELECT SUBSTR(time, 1, 2) || ':' || SUBSTR(time, 4, 2) ||
CASE WHEN MOD(hour, 12) = 0 THEN ' PM'
ELSE ' AM'
END
FROM your_table;
説明:
SUBSTR(time, 1, 2)
は、時間文字列 (time
) の最初の2文字 (時) を抽出します。MOD(hour, 12)
は、時間を12で割った余りを計算します。- 余りが0の場合は "PM" を、それ以外の場合は "AM" を返します。
strftime関数
SELECT strftime('%I:%M %p', time)
FROM your_table;
%I
は、12時間表記の時間を表します。%M
は、分を表します。
- 上記の方法は、SQLiteのバージョンやロケールによって異なる場合があります。詳細はSQLiteのドキュメントを参照してください。
sqlite