在本教學中,將學習如何使用SQL Server DATETIME2將日期和時間數據存儲在表中。
SQL Server DATETIME2簡介
要在資料庫中存儲日期和時間,請使用SQL Server DATETIME2數據類型。
DATETIME2的語法如下:
DATETIME2(fractional seconds precision)
precision- 小數秒精度是可選的,範圍從0到7。
以下語句說明了如何創建包含DATETIME2列的表:
CREATE TABLE table_name (
...
column_name DATETIME2(3),
...
);
DATETIME2有兩個組成部分:日期和時間。
- 日期範圍為1月01日(
0001-01-01)至12月31日(9999-12-31) - 時間範圍為
00:00:00至23:59:59.9999999。
DATETIME2值的存儲大小取決於小數秒精度。 對於小於3的精度,它需要6個位元組,對於3到4之間的精度,它需要7個位元組,對於所有其他精度,它需要8個位元組。
DATETIME2的默認字串文字格式如下:
YYYY-MM-DD hh:mm:ss[.fractional seconds]
在上面的格式中,
YYYY是一個四位數字,代表年份。例如2018,它的範圍從0001到9999。MM是一個兩位數的數字,代表一年中的月份。例如12,它的範圍從01到12。DD是一個兩位數的數字,代表指定月份的第幾天。例如23。它的範圍從01到31。hh是一個代表小時的兩位數字。它的範圍從00到23。mm是代表分鐘的兩位數字。 範圍從00到59。ss是一個兩位數字,表示秒數。 範圍從00到59。fractional seconds表示秒小數點值,它是0到7位數字。範圍從0到9999999。
SQL Server DATETIME2示例
以下語句創建一個新表,其中包含一個created_at列,它的數據類型為DATETIME2:
CREATE TABLE test.product_colors (
color_id INT PRIMARY KEY IDENTITY,
color_name VARCHAR (50) NOT NULL,
created_at DATETIME2
);
要將當前日期和時間插入created_at列,請將以下INSERT語句與GETDATE()函數一起使用:
INSERT INTO test.product_colors (color_name, created_at)
VALUES
('紅色', GETDATE());
GETDATE()函數類似於其他資料庫系統(如MySQL)中的NOW()函數。要將文字值插入DATETIME2列,請使用以下語句:
INSERT INTO test.product_colors (color_name, created_at)
VALUES
('紅色', '2020-06-23 09:36:37');
如果要將created_at列的默認值設置為當前日期和時間,請使用以下ALTER TABLE語句:
ALTER TABLE production.product_colors
ADD CONSTRAINT df_current_time
DEFAULT CURRENT_TIMESTAMP FOR created_at;
在此語句中,使用CURRENT_TIMESTAMP作為created_at列的默認值。 請注意,CURRENT_TIMESTAMP返回的值與GETDATE()函數返回的值相同。
現在,當向表中插入新行而未指定created_at列的值時,SQL Server將使用該列的當前日期和時間值:
INSERT INTO production.product_colors (color_name)
VALUES
('藍色');
在本教學中,學習了如何使用SQL Server DATETIME2數據類型將日期和時間數據存儲在表中。
上一篇:
SQL Server數據類型
下一篇:
SQL Server數據定義
