Kiểu dữ liệu DATETIME2 trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng DATETIME2 trong SQL Server để lưu trữ cả dữ liệu ngày và giờ trong một bảng.

Giới thiệu về kiểu dữ liệu DATETIME2 trong SQL Server

Để lưu trữ cả ngày và giờ trong cơ sở dữ liệu, bạn sử dụng kiểu dữ liệu DATETIME2 trong SQL Server .

Cú pháp của kiểu dữ liệu DATETIME2 như sau:

DATETIME2(fractional seconds precision)

Độ chính xác phân số giây là tùy chọn. Nó nằm trong khoảng từ 0 đến 7.

Câu lệnh sau minh họa cách tạo bảng bao gồm một cột kiểu DATETIME2:

CREATE TABLE table_name (
    ...
    column_name DATETIME2(3),
    ...
);

DATETIME2 có hai thành phần: ngày và giờ.

  • Ngày có phạm vi từ ngày 1 tháng 1 năm 01 (0001-01-01) đến ngày 31 tháng 12 năm 9999 (9999-12-31)
  • Thời gian có phạm vi từ 00:00:00 đến 23: 59: 59.9999999.

Kích thước lưu trữ của một giá trị DATETIME2 phụ thuộc vào độ chính xác của phân số giây. Nó yêu cầu 6 byte cho độ chính xác nhỏ hơn 3, 7 byte cho độ chính xác từ 3 đến 4 và 8 byte cho tất cả các chính xác khác.

Định dạng chuỗi ký tự mặc định của chuỗi ký tự DATETIME2 như sau:

YYYY-MM-DD hh:mm:ss[.fractional seconds]

Ở định dạng này:

  • YYYY là một số có bốn chữ số đại diện cho một năm, ví dụ: 2022. Nó nằm trong khoảng từ 0001 đến 9999.
  • MM là một số có hai chữ số đại diện cho một tháng trong năm, ví dụ: 12. Nó nằm trong khoảng từ 01 đến 12.
  • DD là một số có hai chữ số đại diện cho một ngày của một tháng cụ thể, ví dụ: 23. Nó nằm trong khoảng từ 01 đến 31.
  • hh là một số có hai chữ số đại diện cho giờ. Nó nằm trong khoảng từ 00 đến 23.
  • mm là một số có hai chữ số đại diện cho phút. Nó nằm trong khoảng từ 00 đến 59.
  • ss là một số có hai chữ số đại diện cho thứ hai. Nó nằm trong khoảng từ 00 đến 59.
  • [.fractional seconds] bằng 0 đến một số có bảy chữ số nằm trong khoảng từ 0 đến 9999999.

Ví dụ về kiểu dữ liệu DATETIME2 trong SQL Server

Câu lệnh sau tạo một bảng mới có một cột created_at có kiểu dữ liệu là DATETIME2:

CREATE TABLE production.product_colors (
    color_id INT PRIMARY KEY IDENTITY,
    color_name VARCHAR (50) NOT NULL,
    created_at DATETIME2
);

Để chèn ngày và giờ hiện tại vào cột created_at, bạn sử dụng câu lệnh INSERT sau với hàm GETDATE():

INSERT INTO production.product_colors (color_name, created_at)
VALUES ('Red', GETDATE()); 

Hàm GETDATE() tương tự như hàm NOW() trong các hệ thống cơ sở dữ liệu khác như MySQL

Để chèn một giá trị chữ vào cột DATETIME2, bạn sử dụng câu lệnh sau:

INSERT INTO production.product_colors (color_name, created_at)
VALUES ('Green', '2018-06-23 07:30:20');

Nếu bạn muốn đặt giá trị mặc định của cột created_at thành ngày và giờ hiện tại, bạn sử dụng câu lệnh ALTER TABLE sau:

ALTER TABLE production.product_colors 
ADD CONSTRAINT df_current_time 
DEFAULT CURRENT_TIMESTAMP FOR created_at;

Trong câu lệnh này, chúng ta sử dụng CURRENT_TIMESTAMP làm giá trị mặc định cho cột created_at. Lưu ý rằng giá trị CURRENT_TIMESTAMP trả về cùng giá trị với hàm GETDATE().

Bây giờ, khi bạn chèn một hàng mới vào bảng mà không chỉ định giá trị cho cột created_at, SQL Server sẽ sử dụng giá trị ngày và giờ hiện tại cho cột đó:

INSERT INTO production.product_colors (color_name)
VALUES ('Blue');

Trong hướng dẫn này, bạn đã học cách sử dụng kiểu dữ liệu DATETIME2 trong SQL Server để lưu trữ cả dữ liệu ngày và giờ trong một bảng.

SQL ServerKiểu dữ liệu trong SQL Server
Bài Viết Liên Quan:
GUID trong SQL Server
Trung Nguyen 12/03/2022
GUID trong SQL Server

Trong hướng dẫn này, bạn sẽ tìm hiểu về GUID trong SQL Server và cách sử dụng hàm NEWID() để tạo giá trị GUID.

Kiểu dữ liệu DATETIMEOFFSET trong SQL Server
Trung Nguyen 12/03/2022
Kiểu dữ liệu DATETIMEOFFSET trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATETIMEOFFSET trong SQL Server để thao tác datetime với múi giờ.

Kiểu dữ liệu TIME trong SQL Server
Trung Nguyen 12/03/2022
Kiểu dữ liệu TIME trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách lưu trữ thời gian trong ngày trong cơ sở dữ liệu bằng cách sử dụng kiểu dữ liệu TIME trong SQL Server.

Kiểu dữ liệu DATE trong SQL Server
Trung Nguyen 12/03/2022
Kiểu dữ liệu DATE trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATE trong SQL Server để lưu trữ dữ liệu ngày tháng trong một bảng.