-
Thiết lập ban đầu
-
Các khái niệm cơ bản
-
Nhóm Truy vấn dữ liệu với SELECT
-
Nhóm thao tác dữ liệu
-
Các nhóm hàm xử lý
-
Hàm trong SQL
-
Các thao tác mở rộng
-
TÀI LIỆU THAM KHẢO CHO LẬP TRÌNH ABAP
Hàm Thời gian DATE TIME trong SQL
Hàm Thời gian DATE TIME trong SQL
Giới thiệu
Trong chương này, chúng ta sẽ tìm hiểu cách sử dụng Dữ liệu Date and Time trong SQL với nhiều tùy chọn khác nhau.
Câu lệnh SQL DATE
Khi làm việc với SQL Date, phần khó khăn nhất là đảm bảo rằng định dạng của ngày bạn đang cố chèn khớp với định dạng của cột ngày trong cơ sở dữ liệu trong SQL Server
Miễn là dữ liệu của bạn chỉ chứa phần ngày, các truy vấn của bạn sẽ hoạt động như mong đợi. Tuy nhiên, nếu có liên quan đến phần thời gian, nó sẽ phức tạp hơn trong SQL.
Ngày SQL xác định một ngày được kết hợp với thời gian trong ngày với giây phân số dựa trên đồng hồ 24 giờ
Ghi chú
Sử dụng kiểu dữ liệu ngày giờ datetime2 và datetimeoffset cho công việc mới. Các loại này phù hợp với tiêu chuẩn SQL
Chúng là những lần di động hơn; datetime2 và datetimeoffset cung cấp nhiều giây hơn; độ chính xácdatetimeoffset cung cấp hỗ trợ múi giờ cho các ứng dụng được triển khai trên toàn cầu
Kiểu dữ liệu ngày SQL
SQL Server – SQL Server đi kèm với các kiểu dữ liệu sau để lưu trữ ngày hoặc giá trị ngày/giờ trong cơ sở dữ liệu
- NGÀY – định dạng YYYY-MM-DD
- DATETIME – định dạng: YYYY-MM-DD HH:MI: SS
- SMALLDATETIME – định dạng: YYYY-MM-DD HH:MI:SS
- DẤU THỜI GIAN – định dạng: một số duy nhất
Các loại ngày được chọn cho một cột khi bạn tạo một bảng mới trong cơ sở dữ liệu của mình
Làm việc với ngày trong SQL
Bạn có thể dễ dàng so sánh hai ngày nếu không có thành phần thời gian liên quan
Ta có bảng OrderDetails sau
Cú pháp
- Select * from OrderDetails
Ví dụ
Bây giờ chúng ta muốn chọn các bản ghi có OrderDate là 2019-04-11 từ bảng trên
Chúng ta sử dụng câu lệnh Select sau
Cú pháp
- SELECT FROM OrderDetails WHERE OrderDate=‘2019-04-11’
Ví dụ
Chuyển đổi dữ liệu ngày và giờ trong SQL
Chuyển đổi dữ liệu ngày và giờ là khi bạn chuyển đổi sang kiểu dữ liệu ngày và giờ, SQL Server từ chối tất cả các giá trị.
Nó không nhận dạng là ngày hoặc giờ để biết thông tin về cách sử dụng các hàm truyền và chuyển đổi với dữ liệu ngày và giờ, hãy xem truyền và chuyển đổi trong SQL.
Chuyển đổi ngày thành các loại ngày và giờ khác
Phần này mô tả những gì xảy ra khi bạn chuyển đổi kiểu dữ liệu ngày sang kiểu dữ liệu ngày và giờ khác.
Khi chuyển đổi thành thời gian(n), quá trình chuyển đổi không thành công và thông báo lỗi 206 xuất hiện và có xung đột loại toán hạng: ngày không tương thích với thời gian.
Nếu chuyển đổi thành ngày giờ, ngày sẽ được sao chép. Đoạn mã sau hiển thị kết quả chuyển đổi giá trị ngày thành giá trị ngày giờ
Cú pháp
- DECLARE @date date = ’12-21-16′;
- DECLARE @datetime datetime = @date;
- SELECT @datetime AS ‘@datetime’, @date AS ‘@date’;
Ví dụ
Ngày giờ được xác định khi chuyển đổi từ time(n), thành phần thời gian được sao chép và thành phần ngày được đặt thành ‘1900-01-01’.
Khi độ chính xác phân số của giá trị time(n) lớn hơn ba chữ số, giá trị sẽ bị cắt bớt cho vừa.
Ví dụ sau đây cho thấy kết quả của việc chuyển đổi giá trị thời gian(4) thành giá trị ngày giờ.
Cú pháp
- DECLARE @time time(4) = ’12:10:05.1237′;
- DECLARE @datetime datetime = @time;
- SELECT @datetime AS ‘@datetime’, @time AS ‘@time’;
Ví dụ
Chuyển đổi ngày giờ SQL là từ smalldatetime giờ và phút được sao chép. Giây và giây phân số được đặt thành 0.
Đoạn mã sau hiển thị kết quả chuyển đổi một giá trị ngày giờ nhỏ.
Cú pháp
- DECLARE @smalldatetime smalldatetime = ’12-01-19 12:32′;
- DECLARE @datetime datetime = @smalldatetime;
- SELECT @datetime AS ‘@datetime’, @smalldatetime AS ‘@smalldatetime’;
Ví dụ
Ngày giờ SQL được định nghĩa là khi chuyển đổi từ datetimeoffset(n)các thành phần ngày và giờ được sao chép.
Múi giờ bị cắt ngắn. Khi độ chính xác phân số của giá trị datetimeoffset(n) lớn hơn ba chữ số, giá trị sẽ bị cắt bớt.
Ví dụ sau đây cho thấy kết quả chuyển đổi giá trị datetimeoffset(4) thành giá trị ngày giờ.
Cú pháp
- DECLARE @datetimeoffset datetimeoffset(4) = ‘1968-10-23 12:45:37.1234 +10:0’;
- DECLARE @datetime datetime = @datetimeoffset;
- SELECT @datetime AS ‘@datetime’, @datetimeoffset AS ‘@datetimeoffset’;
Ví dụ
Datetime được định nghĩa là khi chuyển đổi từ datetime2(n), ngày và giờ được sao chép. khi độ chính xác phân số của giá trị datetime2(n) lớn hơn ba chữ số, thì giá trị đó sẽ bị cắt bớt.
Datetime được định nghĩa là khi chuyển đổi từ datetime2(n), ngày và giờ được sao chép.
Khi độ chính xác phân số của giá trị datetime2(n) lớn hơn ba chữ số, giá trị sẽ bị cắt bớt.
Ví dụ sau đây cho thấy kết quả của việc chuyển đổi giá trị datetime2(4) thành giá trị datetime.
Ví dụ sau hiển thị datetime và datetime2 trong máy chủ SQL
Cú pháp
- DECLARE @datetime2 datetime2(4) = ‘1968-10-23 12:45:37.1237’;
- DECLARE @datetime datetime = @datetime2;
- SELECT @datetime AS ‘@datetime’, @datetime2 AS ‘@datetime2’;
Ví dụ
Ví dụ sau đây so sánh kết quả của việc truyền một chuỗi với từng ngày và loại dữ liệu.
Cú pháp
- SELECT
- CAST‘2019-05-18 12:35:29. 1234567 +12:15’ AS “keyword”>time(7)) AS ‘time’
- ,CAST‘2019-05-18 12:35:29. 1234567 +12:15’ AS date AS ‘date’
- ,CAST(‘2019-05-18 12:35:29.123’ >AS smalldatetime) AS
- ‘smalldatetime’
- ,CAST‘2019-05-18 12:35:29.123’ AS datetime) >AS ‘datetime’
- ,CAST(‘2019-05-18 12:35:29. 1234567 +12:15’ >AS datetime2(7)) AS
- ‘datetime2’
- ,CAST‘2019-05-18 12:35:29.1234567 +12:15’ AS datetimeoffset(7)) AS
- ‘datetimeoffset’;
Ví dụ
Bản tóm tắt
Trong chương này, chúng ta đã học cách sử dụng các câu lệnh SQL Aggregate với các tùy chọn khác nhau.
(Source: https://www.c-sharpcorner.com/)
Next
Bảng SQL