SQLの日付
SQL の日付
日付を扱うとき、最も難しい作業は、おそらく、挿入された日付の形式がデータベース内の日付列の形式と一致することを確認することです。
データに日付部分のみが含まれている限り、クエリの実行に問題はありません。ただし、時間の部分になると、状況は少し複雑になります。
日付クエリの複雑さについて説明する前に、まず最も重要な組み込みの日付処理関数を見てみましょう。
MySQL 日付関数
次の表は、MySQL の最も重要な組み込み日付関数をリストしています:
関数 | 説明 |
---|---|
NOW() | 現在の日付と時刻を返します |
CURDATE() | 現在の日付を返します |
CURTIME() | 現在時刻を返します |
DATE() | 日付または日付/時刻式の日付部分を抽出します |
EXTRACT( ) | 日付/時刻の別の部分を返します |
DATE_ADD() | 指定された時間間隔を日付に追加します |
DATE_SUB() | 日付から指定された時間間隔を減算します |
DATEDIFF() | 2 つの日付の間の日数を返します |
DATE_FORMAT() | 日付/時刻をさまざまな形式で表示します |
SQL Server の日付関数
次の表は、最も一般的な関数のリストですSQL Server の重要な組み込み日付関数:
Function | Description |
---|---|
GETDATE() | 現在の日付と時刻を返します |
DATEPART() | 日付の個々の部分を返します/time |
DATEADD() | 日付から指定された時間間隔を加算または減算します |
DATEDIFF() | 2つの日付の間の時間を返します |
CONVERT() | 日付をさまざまな形式で表示します/ 時間 |
SQL 日付データ型
MySQL 日付または日付/時刻の値をデータベースに保存するには、次のデータ型を使用します:
DATE - 形式: YYYY-MM-DD
DATETIME -形式: YYYY- MM-DD HH:MM:SS
TIMESTAMP - 形式: YYYY-MM-DD HH:MM:SS
YEAR - 形式: YYYY または YY
SQL Server を使用します日付または日付/時刻の値をデータベースに保存するには、次のデータ型を使用します:
DATE - 形式: YYYY-MM-DD
DATETIME - 形式: YYYY-MM-DD HH:MM:SS
SMALLDATETIME - 形式: YYYY -MM-DD HH:MM:SS
TIMESTAMP - 形式: 一意の数値
コメント: データベースに新しいテーブルを作成するときは、データを選択する必要があります列に入力してください!
利用可能なすべてのデータ型について詳しくは、完全なデータ型リファレンス マニュアルをご覧ください。
SQL 日付処理
時間部分が関係しない場合は、2 つの日付を簡単に比較できます。
次の「Orders」テーブルがあるとします。
2008-11-09 | 3 | |
---|---|---|
2008-11-11 | 4 | |
2008-10-29 | ||
次の SELECT ステートメントを使用します: | SELECT * FROM Orders WHERE OrderDate='2008-11-11' | |
OrderId | ProductName |
1Geitost
2008-11-11 | さて、「Orders」テーブルがあると仮定します。こんな感じです(ご了承ください)列の「Or derDate」時間部分): | |
---|---|---|
OrderId | ProductName | |
1 | Geitost |
2
2008-11-09 15:45:21 | 3 | |
---|---|---|
2008-11-11 11:12:01 | 4 | |
20 08 -10-29 14:56:59 | 上記と同じ SELECT ステートメントを使用すると: SELECT * FROM Orders WHERE OrderDate='2008-11-11' その場合、結果は得られません。これは、このクエリの日付には時間コンポーネントが含まれていないためです。 ヒント: クエリをシンプルにして管理しやすくしたい場合は、日付に時刻の部分を使用しないでください。 |