Trong SQL Server, bạn có thể sử dụng T-SQL FORMAT()
chức năng định dạng ngày và / hoặc giờ. Đơn giản chỉ cần cung cấp hai đối số; ngày / giờ và định dạng sẽ sử dụng.
Định dạng được cung cấp dưới dạng chuỗi định dạng. Chuỗi định dạng xác định cách định dạng đầu ra.
FORMAT()
hàm cũng chấp nhận đối số “văn hóa” tùy chọn, cho phép bạn chỉ định ngôn ngữ / khu vực mà kết quả phải tuân theo.
Ví dụ cơ bản
Đây là một ví dụ cơ bản về việc sử dụng FORMAT()
chức năng định dạng ngày.
Ngày thô
Đầu tiên, đây là ngày thô trông như thế nào. Nếu chúng ta chạy câu lệnh sau:
SELECT GETDATE();
Chúng tôi nhận được một kết quả giống như sau:
2018-05-03 02:36:54.480
Ngày được định dạng
Bây giờ, chúng ta có thể sử dụng FORMAT()
chức năng định dạng ngày và giờ đó thành định dạng ưa thích của chúng tôi. Ví dụ, chúng tôi có thể làm điều này:
SELECT FORMAT( GETDATE(), 'D');
Kết quả là:
Thursday, May 3, 2018
Đây chỉ là một trong nhiều định dạng mà chúng tôi có thể chọn. Đây là một cái khác:
SELECT FORMAT( GETDATE(), 'd');
Kết quả là:
5/3/2018
Kết quả thực tế sẽ khác nhau tùy thuộc vào cách nuôi cấy đang được sử dụng. Theo mặc định, ngôn ngữ của phiên hiện tại được sử dụng, nhưng bạn cũng có thể ghi đè ngôn ngữ này bằng đối số thứ ba (“culture”).
Đặt ngôn ngữ
Chúng tôi có thể thêm đối số thứ ba (“văn hóa”) vào mã trên để xác định ngôn ngữ sẽ sử dụng cho định dạng ngày.
Vì vậy, chúng tôi có thể làm điều này, ví dụ:
SELECT FORMAT( GETDATE(), 'd', 'en-gb');
Kết quả là:
03/05/2018
Đây là một ví dụ khác:
SELECT FORMAT( GETDATE(), 'd', 'zh-cn');
Kết quả là:
2018/5/3
Nếu văn hóa đối số không được cung cấp, ngôn ngữ của phiên hiện tại được sử dụng.
Đây là cách tìm ngôn ngữ của phiên hiện tại và đây là cách đặt ngôn ngữ đó.
Lưu ý rằng ngôn ngữ hiện tại thường sẽ giống với ngôn ngữ mặc định của người dùng, nhưng điều này có thể không đúng nếu người dùng đã thay đổi ngôn ngữ hiện tại bằng cách sử dụng SET LANGUAGE
. Trong mọi trường hợp, bạn cũng có thể tìm hiểu ngôn ngữ mặc định là gì.
Như bạn có thể tưởng tượng, bạn có thể nhận được các kết quả khá khác nhau tùy thuộc vào ngôn ngữ hiện tại của bạn hoặc giá trị của bất kỳ lập luận “văn hóa” nào. Xem Cách cài đặt ngôn ngữ có thể ảnh hưởng đến kết quả FORMAT () của bạn để biết thêm ví dụ.
Trích xuất Tháng / Tuần / Năm
Bạn có thể sử dụng FORMAT()
chức năng chỉ trả về phần tháng của ngày hoặc tuần hoặc năm theo yêu cầu.
Lưu ý rằng chúng có phân biệt chữ hoa chữ thường. Ví dụ:MMM
định dạng tháng khác nhau thành mmm
.
Tháng
Mã ví dụ để trả lại phần tháng:
SELECT FORMAT( GETDATE(), 'MMM');
Kết quả:
May
Năm
Mã ví dụ để trả lại phần của năm:
SELECT FORMAT( GETDATE(), 'yyyy');
Kết quả:
2018
Ngày
Mã ví dụ để trả lại phần trong ngày:
SELECT FORMAT( GETDATE(), 'dddd');
Kết quả:
Thursday
Trích xuất thời gian
Bạn cũng có thể sử dụng FORMAT()
chức năng trả về thời gian ở một định dạng được chỉ định.
Đây là một ví dụ:
SELECT FORMAT( GETDATE(), 'hh.mm');
Kết quả:
03.37
Nhà thiết kế AM / PM
Bạn cũng có thể thêm tt
để bao gồm bộ chỉ định AM / PM:
SELECT FORMAT( GETDATE(), 'hh.mm tt');
Kết quả:
03.37 AM
Kết hợp các chuỗi định dạng
Bạn cũng có thể kết hợp các chuỗi định dạng này để cung cấp định dạng ngày tùy chỉnh của riêng bạn. Ví dụ:
SELECT FORMAT( GETDATE(), 'hh.mm tt dddd, dd MMMM, yyyy');
Kết quả:
03.41 AM Thursday, 03 May, 2018
Tham chiếu định dạng ngày và giờ
Các bài viết sau đây chứa tất cả các mã định dạng ngày và giờ có thể được sử dụng với FORMAT()
chức năng trong SQL Server, cùng với các ví dụ T-SQL:
- Chuỗi định dạng ngày và giờ chuẩn
- Chuỗi định dạng ngày và giờ tùy chỉnh
Đây là những chỉ định định dạng ngày và giờ giống nhau được hỗ trợ bởi .NET Framework (FORMAT()
chức năng dựa trên .NET Framework).
Tham chiếu thông số định dạng số
Các bài viết sau chứa tất cả các từ định dạng số mà bạn có thể sử dụng với FORMAT()
chức năng (tức là để định dạng số):
- Chuỗi định dạng số chuẩn
- Chuỗi định dạng số tùy chỉnh
Đây là các thông số định dạng số giống nhau được .NET Framework hỗ trợ.
Các hàm ngày khác
T-SQL cũng bao gồm một loạt các hàm khác giúp bạn trích xuất các phần từ ngày tháng. Chúng bao gồm các hàm như DAY()
, MONTH()
, YEAR()
, DATEPART()
và DATENAME()
.