在本教學中,將學習如何使用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數據定義