CURRENT_DATEとGETDATEで今日の日付を取得
MS SQLで日付のみを取得する方法
DATE 関数を使う
DATE
関数は、日付時刻型から日付のみを取り出すために使用できます。
SELECT DATE(column_name)
FROM table_name;
例:
SELECT DATE(OrderDate)
FROM Orders;
このクエリは、Orders
テーブルの OrderDate
カラムから日付のみを取り出し、結果として 2024-04-02
のような形式で表示します。
CONVERT 関数を使う
CONVERT
関数は、データ型を変換するために使用できます。 日付時刻型から日付のみを取得するには、style
引数に 103
を指定します。
SELECT CONVERT(column_name, DATETIME, 103)
FROM table_name;
SELECT CONVERT(OrderDate, DATETIME, 103)
FROM Orders;
FLOOR 関数を使う
FLOOR
関数は、数値を切り捨てて整数にします。 日付時刻型から日付のみを取得するには、DATE
型を指定します。
SELECT FLOOR(column_name, DATE)
FROM table_name;
SELECT FLOOR(OrderDate, DATE)
FROM Orders;
CAST 関数を使う
SELECT CAST(column_name AS DATE)
FROM table_name;
SELECT CAST(OrderDate AS DATE)
FROM Orders;
どの方法を使うべきか?
どの方法を使うかは、好みや状況によって異なります。 どの方法もほぼ同じ結果になりますが、DATE
関数は最も簡潔で分かりやすい方法です。
上記以外にも、日付のみを取得する方法はいくつかあります。 例えば、以下のような方法があります。
SUBSTRING
関数を使って、日付部分のみを抽出するCASE
ステートメントを使って、日付と時間の条件分岐を行う
これらの方法は、より複雑な処理が必要な場合に役立ちます。
-- サンプルテーブル
CREATE TABLE Orders (
OrderID INT NOT NULL IDENTITY(1, 1),
OrderDate DATETIME NOT NULL,
CustomerName VARCHAR(50) NOT NULL
);
-- データ挿入
INSERT INTO Orders (OrderDate, CustomerName)
VALUES ('2024-04-02 10:23:54', 'John Doe'),
('2024-04-03 12:34:56', 'Jane Doe'),
('2024-04-04 14:45:58', 'Peter Smith');
-- 1. DATE 関数を使う
SELECT DATE(OrderDate) AS OrderDate
FROM Orders;
-- 2. CONVERT 関数を使う
SELECT CONVERT(OrderDate, DATETIME, 103) AS OrderDate
FROM Orders;
-- 3. FLOOR 関数を使う
SELECT FLOOR(OrderDate, DATE) AS OrderDate
FROM Orders;
-- 4. CAST 関数を使う
SELECT CAST(OrderDate AS DATE) AS OrderDate
FROM Orders;
このコードを実行すると、以下の結果が表示されます。
OrderDate
---------
2024-04-02
2024-04-03
2024-04-04
2024-04-02
2024-04-03
2024-04-04
2024-04-02
2024-04-03
2024-04-04
SELECT SUBSTRING(OrderDate, 1, 10) AS OrderDate
FROM Orders;
SELECT CASE
WHEN DATETIME_PART(OrderDate, HOUR) = 0
THEN DATE(OrderDate)
ELSE OrderDate
END AS OrderDate
FROM Orders;
SELECT DATE(GETDATE()) AS CurrentDate;
このクエリは、現在のシステム日付から日付のみを取り出し、結果として 2024-04-02
のような形式で表示します。
CURRENT_DATE 関数を使う
CURRENT_DATE
関数は、現在のシステム日付を取得します。
SELECT CURRENT_DATE AS CurrentDate;
SYSDATETIME() 関数を使う
SELECT DATE(SYSDATETIME()) AS CurrentDate;
DATEDIFF() 関数を使う
DATEDIFF()
関数は、2つの日付の間の日数差を計算します。 日付のみを取得するには、DATEDIFF()
関数と 0
を組み合わせて使用します。
SELECT DATEDIFF(dd, 0, GETDATE()) AS CurrentDate;
SELECT DATEADD(dd, 0, GETDATE()) AS CurrentDate;
sql sql-server t-sql