STR_TO_DATE関数でMariaDBタイムスタンプを日付型に変換

2024-04-10

MariaDBでタイムスタンプから日付を選択する方法

DATE() 関数は、タイムスタンプから日付部分のみを抽出します。

SELECT DATE(timestamp_column) FROM table_name;

例えば、timestamp_column2024-04-09 17:34:56 という値が格納されている場合、上記のクエリは 2024-04-09 という結果を返します。

SELECT EXTRACT(YEAR FROM timestamp_column) FROM table_name;
SELECT EXTRACT(MONTH FROM timestamp_column) FROM table_name;
SELECT EXTRACT(DAY FROM timestamp_column) FROM table_name;

上記のクエリはそれぞれ、timestamp_column から年、月、日を取得します。

SUBSTR() 関数は、文字列から部分文字列を抽出します。

SELECT SUBSTR(timestamp_column, 1, 10) FROM table_name;

上記のクエリは、timestamp_column から最初の10文字を取得します。これは、DATE() 関数と同じ結果になります。

STR_TO_DATE() 関数は、文字列を日付型に変換します。

SELECT STR_TO_DATE(timestamp_column, '%Y-%m-%d') FROM table_name;

上記のクエリは、timestamp_column%Y-%m-%d という形式の日付型に変換します。

以下の例では、timestamps テーブルから timestamp_column の値を取得し、日付部分のみを抽出します。

SELECT DATE(timestamp_column) FROM timestamps;

このクエリは、以下の結果を返します。

2024-04-09



-- MariaDB

-- テーブル作成
CREATE TABLE timestamps (
  timestamp_column TIMESTAMP
);

-- データ挿入
INSERT INTO timestamps (timestamp_column) VALUES ('2024-04-09 17:34:56');

-- 日付部分のみ抽出
SELECT DATE(timestamp_column) FROM timestamps;

このコードを実行すると、以下の結果が出力されます。

2024-04-09
  • 上記のサンプルコードは、MariaDB 10.5.14 で動作確認しています。
  • 他のデータベースを使用している場合は、日付と時刻の処理に関する構文が異なる場合があります。



MariaDBでタイムスタンプから日付を選択するその他の方法

FROM_UNIXTIME() 関数は、UNIXタイムスタンプから日付型に変換します。

SELECT FROM_UNIXTIME(timestamp_column) FROM table_name;

CONVERT() 関数は、文字列を別のデータ型に変換します。

SELECT CONVERT(timestamp_column, DATE) FROM table_name;
SELECT CAST(timestamp_column AS DATE) FROM table_name;

DATE_FORMAT() 関数は、日付型を指定された形式で表示します。

SELECT DATE_FORMAT(timestamp_column, '%Y-%m-%d') FROM table_name;
-- MariaDB

-- テーブル作成
CREATE TABLE timestamps (
  timestamp_column TIMESTAMP
);

-- データ挿入
INSERT INTO timestamps (timestamp_column) VALUES ('2024-04-09 17:34:56');

-- UNIXタイムスタンプから日付型に変換
SELECT FROM_UNIXTIME(timestamp_column) FROM timestamps;

-- 文字列をDATE型に変換
SELECT CONVERT(timestamp_column, DATE) FROM timestamps;

-- 式をDATE型に変換
SELECT CAST(timestamp_column AS DATE) FROM timestamps;

-- 日付型を指定された形式で表示
SELECT DATE_FORMAT(timestamp_column, '%Y-%m-%d') FROM timestamps;
2024-04-09
2024-04-09
2024-04-09
2024-04-09

mariadb


DockerコンテナでMariaDBのボリュームを使ってデータを永続化する方法

DockerコンテナでMariaDBを使用する場合、設定変更によってデータ損失が発生する可能性があります。これは、Dockerコンテナの性質上、永続化されないためです。データ損失の原因Dockerコンテナは、実行環境を独立したパッケージとして提供します。そのため、コンテナ内で行った変更は、コンテナが破棄されると失われます。MariaDBの設定変更も例外ではなく、コンテナを再起動したり、新しいコンテナを作成したりすると、変更が反映されない可能性があります。...


MySQL、SQL、MariaDBでSELECTクエリを使用して行順序を変更する方法

このチュートリアルでは、MySQL、SQL、MariaDBで SELECT クエリを使用して行順序を変更する方法について解説します。前提条件MySQL、SQL、MariaDBの基礎知識テーブルとデータの構造に関する理解方法行順序を変更するには、以下の方法を使用できます。...


MariaDB: VARCHARとTEXTの徹底比較

データサイズ:VARCHAR: 最大65, 535バイトの文字列を格納できます。TEXT: 最大65, 535バイト(BLOB型)または4, 294, 967, 295バイト(MEDIUMTEXT型)の文字列を格納できます。ストレージ効率:...


【初心者向け】MySQL、PostgreSQL、MariaDBで発生する「Unique constraint violation on similar characters」エラー:解決策と予防策を分かりやすく解説

MySQL、PostgreSQL、MariaDB などのデータベースシステムにおいて、「Unique constraint violation on similar characters」というエラーが発生することがあります。これは、データベースに登録しようとしたデータに、すでにユニーク制約が設定されている列に、類似した文字列が存在する場合に発生します。...


MySQLとMariaDBにおける影響のないトランザクション:仕組みとメリット

MySQLとMariaDBでは、トランザクションを実行してもデータベースファイルに書き込まれない場合があります。これは、「影響のないトランザクション」と呼ばれるもので、データの整合性を保ちつつ、パフォーマンスを向上させるために役立ちます。影響のないトランザクションとは、データベースの状態を変更しないトランザクションです。具体的には、以下の操作が含まれます。...


SQL SQL SQL SQL Amazon で見る



MariaDBで◯◯◯を簡単操作!日付範囲と履歴期間でレコードを絞り込むテクニック

この解説では、SQLとMariaDBを使用して、指定された日付範囲と履歴期間に基づいてレコードを選択する方法について説明します。シナリオあるテーブルに、商品購入履歴を記録するデータがあります。各レコードには、購入日、商品名、購入数量などの情報が格納されています。