SQLの日付
日付を扱う最も難しい部分は、あなたが挿入しようとしている日付の形式は、データベース内の日付列の形式と一致していることを確認することです。
MySQLの日付関数
次の表は、MySQLの中で最も重要な組み込みの日付関数を示しています。
関数 | 説明 |
---|---|
NOW() | 現在の日付と時刻を返します。 |
CURDATE() | 現在の日付を返します。 |
CURTIME() | 現在の時刻を返します。 |
DATE() | 日付または日付/時刻式の日付部分を抽出します |
EXTRACT() | 日付/時刻の単一部分を返します |
DATE_ADD() | 日付に指定された時間間隔を追加します。 |
DATE_SUB() | 日付から指定した時間間隔を減算 |
DATEDIFF() | 2つの日付の間の日数を返します。 |
DATE_FORMAT() | 異なるフォーマットで表示された日付/時刻データ |
SQL Serverの日付関数
次の表は、SQL Serverの中で最も重要な組み込みの日付関数を示しています。
関数 | 説明 |
---|---|
GETDATE() | 現在の日付と時刻を返します。 |
DATEPART() | 日付/時刻の単一部分を返します |
DATEADD() | 追加または日付から、指定された時間間隔を減算 |
DATEDIFF() | 2つの日付の間の時間を返します。 |
CONVERT() | 異なるフォーマットで表示された日付/時刻データ |
SQLの日付データ型
MySQLデータベース内の日付または日付/時刻値を格納するための次のデータ型が付属しています:
- DATE - 書式がYYYY-MM-DD
- DATETIME - フォーマット:YYYY-MM-DD HH:MI:SS
- TIMESTAMP - フォーマット:YYYY-MM-DD HH:MI:SS
- YEAR - 書式がYYYYまたはYY
SQL Serverデータベース内の日付または日付/時刻値を格納するための次のデータ型が付属しています:
- DATE - 書式がYYYY-MM-DD
- DATETIME - フォーマット:YYYY-MM-DD HH:MI:SS
- SMALLDATETIME - フォーマット:YYYY-MM-DD HH:MI:SS
- TIMESTAMP - フォーマット:一意の番号
Note:お使いのデータベースに新しいテーブルを作成するときに、日付型は列のために選ばれています!
利用可能なすべてのデータ型の概要については、当社の完全に行くデータタイプ参照 。
日付を使った作業SQL
関与しない時間コンポーネントが存在しない場合は、簡単に二つの日付を比較することができます!
私たちは以下の持っていると仮定"Orders"テーブルを:
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 |
さて、と仮定し"Orders" (中時間成分気づくテーブルは次のようになります"OrderDate"列):
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 13:23:44 |
2 | カマンベールピエロ | 2008年11月9日午後三時45分21秒 |
3 | モッツァレラ・ディ・ジョヴァンニ | 2008年11月11日11時12分01秒 |
4 | マスカルポーネFabioli | 2008年10月29日十四時56分59秒 |
我々は上記と同じSELECTステートメントを使用する場合:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
我々は何も結果が得られないでしょう! クエリだけ時間がない部分と日付を探しているためです。
Tip:あなたが維持するためにシンプルで簡単なクエリを維持したい場合は、あなたの日付に時間コンポーネントを許可していません!