SQL ServerでGETDATE()関数を使用する方法
Lukas Schneider
DevOps Engineer · Leapcell

Key Takeaways
GETDATE()
は、SQL Serverの現在のシステム日付と時刻を返します。- これは、タイムスタンプ、フィルタリング、および日付計算によく使用されます。
GETDATE()
は、サーバーのローカルタイムゾーンを使用し、非決定的です。
SQL ServerのGETDATE()
関数は、SQL Serverインスタンスが実行されているシステムの現在の日付と時刻を返す組み込み関数です。これは、レコードのタイムスタンプ、現在の日付に基づいてデータをフィルタリング、および日付計算の実行によく使用されます。
構文
GETDATE()
この関数は引数を必要とせず、現在の日付と時刻をYYYY-MM-DD hh:mm:ss.mmm
の形式でDATETIME
値として返します。
基本的な使用法
現在の日付と時刻を取得するには:
SELECT GETDATE() AS CurrentDateTime;
これにより、現在のシステムの日付と時刻が返されます。
一般的なユースケース
1. テーブルにデフォルト値を設定する
GETDATE()
を使用して、テーブル作成時に日付列のデフォルト値を設定できます。
CREATE TABLE Orders ( OrderID INT PRIMARY KEY, OrderDate DATETIME DEFAULT GETDATE() );
これにより、挿入中にOrderDate
に値が提供されない場合、現在の日付と時刻が使用されるようになります。
2. 現在の日付に基づいてレコードをフィルタリングする
日付が現在の日付と一致するテーブルからレコードを選択するには:
SELECT * FROM Orders WHERE CAST(OrderDate AS DATE) = CAST(GETDATE() AS DATE);
このクエリは、時間コンポーネントを無視して、日付部分のみを比較します。
3. 日付の差を計算する
保存された日付と現在の日付の間の年数の差を計算するには:
SELECT EmployeeID, DATEDIFF(YEAR, BirthDate, GETDATE()) AS Age FROM Employees;
これにより、従業員の生年月日を基に年齢が計算されます。
4. 時間間隔を加算または減算する
現在の日付から時間間隔を加算または減算するには:
-- 7日間を追加 SELECT DATEADD(DAY, 7, GETDATE()) AS DateAfter7Days; -- 1ヶ月を減算 SELECT DATEADD(MONTH, -1, GETDATE()) AS DateBefore1Month;
これらのクエリは、指定された間隔で現在の日付を調整します。
特定の日付部分を抽出する
現在の日付の特定の部分を抽出するには:
SELECT YEAR(GETDATE()) AS CurrentYear, MONTH(GETDATE()) AS CurrentMonth, DAY(GETDATE()) AS CurrentDay;
これにより、現在の年、月、日が個別に取得されます。
日付と時刻のフォーマット
現在の日付と時刻を特定の文字列形式にフォーマットするには:
SELECT FORMAT(GETDATE(), 'dd-MM-yyyy HH:mm:ss') AS FormattedDateTime;
これにより、日付と時刻がdd-MM-yyyy HH:mm:ss
としてフォーマットされます。
考慮事項
-
タイムゾーン:
GETDATE()
は、サーバーのローカルタイムゾーンに基づいて現在の日付と時刻を返します。UTC時間が必要な場合は、GETUTCDATE()
の使用を検討してください。 -
精度: より高い精度(小数秒を含む)については、
SYSDATETIME()
はGETDATE()
よりも高い精度のDATETIME2
値を返すため、使用できます。 -
非決定的関数:
GETDATE()
は非決定的です。つまり、同じクエリ内でも、呼び出されるたびに異なる結果を返す可能性があります。これは、インデックス作成とクエリの最適化に影響を与える可能性があります。
結論
GETDATE()
関数は、現在の日付と時刻を扱うためのSQL Serverの多用途ツールです。レコードのタイムスタンプ、データのフィルタリング、または日付計算の実行など、GETDATE()
は、現在のシステムの日付と時刻をSQLクエリに組み込むための簡単な方法を提供します。
FAQs
SQL Serverシステムの現在の日付と時刻を返します。
レコードのタイムスタンプ、現在の日付によるフィルタリング、および日付演算に使用されます。
いいえ、ローカルサーバー時間を提供します。UTCにはGETUTCDATE()
を使用してください。
Leapcellは、バックエンドプロジェクトをホストするための最適な選択肢です。
Leapcellは、Webホスティング、非同期タスク、およびRedisの次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、またはRustで開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に対してのみ支払い — リクエストも料金もかかりません。
無敵の費用効率
- アイドル料金なしの従量課金制。
- 例:$25で、平均応答時間60msで694万リクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI/CDパイプラインとGitOps統合。
- 実用的な洞察のためのリアルタイムメトリクスとロギング。
簡単なスケーラビリティと高性能
- 高い同時実行性を簡単に処理するための自動スケーリング。
- 運用オーバーヘッドゼロ — 構築に集中するだけです。
ドキュメントで詳細をご覧ください!
Xでフォローしてください:@LeapcellHQ