MySQLチュートリアル

MySQLホーム MySQLイントロ MySQL RDBMS

MySQL SQL

MySQL SQL MySQL SELECT MySQL WHERE MySQL AND、OR、NOT MySQL ORDER BY MySQL INSERT INTO MySQLNULL値 MySQL UPDATE MySQLDELETE MySQL LIMIT MySQLMINおよびMAX MySQL COUNT、AVG、SUM MySQL LIKE MySQLワイルドカード MySQL IN MySQL BETWEEN MySQLエイリアス MySQLが参加します MySQL内部結合 MySQL LEFT JOIN MySQL RIGHT JOIN MySQL CROSS JOIN MySQL自己結合 MySQL UNION MySQL GROUP BY MySQL HAVING MySQLが存在します MySQL ANY、ALL MySQL INSERT SELECT MySQLケース MySQLヌル関数 MySQLコメント MySQL演算子

MySQLデータベース

MySQL Create DB MySQLドロップDB MySQLテーブルの作成 MySQLドロップテーブル MySQL ALTER TABLE MySQLの制約 MySQLはNullではありません MySQLユニーク MySQLプライマリキー MySQL外部キー MySQLチェック MySQLのデフォルト MySQL CreateIndex MySQL自動インクリメント MySQLの日付 MySQLビュー

MySQLリファレンス

MySQLデータ型 MySQL関数

MySQLの

MySQLの例 MySQLクイズ MySQL演習

MySQLは日付を処理します


MySQLの日付

日付を操作するときに最も難しいのは、挿入しようとしている日付の形式がデータベースの日付列の形式と一致していることを確認することです。

データに日付部分のみが含まれている限り、クエリは期待どおりに機能します。ただし、時間の部分が含まれる場合、それはより複雑になります。


MySQLの日付データ型

MySQLには、データベースに日付または日付/時刻の値を格納するための次のデータ型が付属しています。

  • DATE-フォーマットYYYY-MM-DD
  • DATETIME-フォーマット:YYYY-MM-DD HH:MI:SS
  • TIMESTAMP-フォーマット:YYYY-MM-DD HH:MI:SS
  • YEAR-フォーマットYYYYまたはYY

注:データベースに新しいテーブルを作成すると、日付データ型が列に設定されます。


日付の操作

次の表を見てください。

注文表

OrderId ProductName OrderDate
1 Geitost 2008-11-11
2 Camembert Pierrot 2008-11-09
3 Mozzarella di Giovanni 2008-11-11
4 Mascarpone Fabioli 2008-10-29

次に、上の表からOrderDateが「2008-11-11」のレコードを選択します。

SELECT次のステートメントを使用します。

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

結果セットは次のようになります。

OrderId ProductName OrderDate
1 Geitost 2008-11-11
3 Mozzarella di Giovanni 2008-11-11

注:時間コンポーネントが含まれていない場合、2つの日付を簡単に比較できます。

ここで、「Orders」テーブルが次のようになっていると仮定します(「OrderDate」列に追加された時間コンポーネントに注意してください)。

OrderId ProductName OrderDate
1 Geitost 2008-11-11 13:23:44
2 Camembert Pierrot 2008-11-09 15:45:21
3 Mozzarella di Giovanni 2008-11-11 11:12:01
4 Mascarpone Fabioli 2008-10-29 14:56:59

上記と同じSELECTステートメントを使用する場合:

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

結果は得られません!これは、クエリが時間部分のない日付のみを検索しているためです。

ヒント:クエリをシンプルで保守しやすいものにするために、必要な場合を除いて、日付に時間コンポーネントを使用しないでください。