Ví dụ 2: Định dạng datetime
Chúng ta có thể định dạng một biến kiểu datetime theo nhiều định dạng khác nhau.
DECLARE @d DATETIME = CAST('2023-02-01 04:05:06' AS DATETIME);
SELECT
FORMAT(@d, format) -- replace format with what is shown in the table below.
|
Format |
Query |
Ví dụ ngày đã định dạng cho 1 February 2023 04:05:06 AM |
|
d |
|
2/1/2023 |
|
D |
|
Wednesday, February 1, 2023 |
|
f |
|
Wednesday, February 1, 2023 4:05 AM |
|
F |
|
Wednesday, February 1, 2023 4:05:06 AM |
|
g |
|
10/8/2022 6:01 AM |
|
G |
|
10/8/2022 6:01:06 AM |
|
O |
|
2022-10-08T06:01:06.117Z |
|
r |
|
Wed, 01 Feb 2023 04:05:06 GMT |
|
R |
|
Wed, 01 Feb 2023 04:05:06 GMT |
|
s |
|
2023-02-01T04:05:06 |
|
u |
|
2023-02-01 04:05:06Z |
|
U |
|
Wednesday, February 1, 2023 4:05:06 AM |
|
t |
|
4:05 AM |
|
T |
|
4:05:06 AM |
|
Y |
|
February 2023 |
|
MM_dd_yyyy |
|
02_01_2023 |
|
MMM-dd-yy |
|
Feb 01 23 |
|
yyyy-dd-MM |
|
2023-01-02 |
|
yyyy-dd-MM hh.mm |
|
2023-01-02 04.05 |
|
yyyy-dd-MM hh.mm.ss |
|
2023-01-02 04.05.06 |
|
yyyy-dd-MM hh.mm.ss tt |
|
2023-01-02 04.05.06 AM |
Ví dụ 3: Định dạng ngày theo ngôn ngữ/vùng
Chúng ta có thể định dạng ngày sang các ngôn ngữ khác nhau với tham số culture.
DECLARE @d DATE = CAST('2023-02-01' AS DATE);
SELECT
FORMAT(@d, format, culture) -- replace format with what is shown in the table below.
|
Culture |
Query |
Ví dụ ngày đã định dạng cho 1 February 2023 |
|
US English (en-US) |
|
2/1/2023 |
|
|
Wednesday, February 1, 2023 12:00 AM | |
|
Great Britain English (en-gb) |
|
01/02/2023 |
|
|
01 February 2023 00:00 | |
|
German (de-de) |
|
01.02.2023 |
|
|
Mittwoch, 1. Februar 2023 00:00 | |
|
Chinese (zh-cn) |
|
2023/2/1 |
|
|
2023年2月1日 0:00 | |
|
Indian (hi-in) |
|
01-02-0203 |
|
|
01 फरवरी 2023 00:00 | |
|
Russian (ru-ru) |
|
01-02-2023 |
|
|
1 февраля 2023 г. 0:00 | |
|
Spain (gl-es) |
|
01/02/2023 |
|
|
mércores 01 febreiro 2023 00:00 |
Ví dụ 4: Định dạng tiền tệ
Chúng ta cũng có thể dễ dàng định dạng giá trị số thành tiền tệ.
SELECT
FORMAT(amount, 'c', culture) -- replace format with what is shown in the table below.
|
Culture |
Query |
Ví dụ tiền tệ đã định dạng |
|
US English (en-US) |
SELECT FORMAT(5.5, 'c', 'en-US') |
$5.5 |
|
Great Britain English (en-gb) |
SELECT FORMAT(@d, 'c', 'en-gb') |
£5.5 |
|
German (de-de) |
SELECT FORMAT(@d, 'c', 'de-de') |
5,50 € |
|
Chinese (zh-cn) |
SELECT FORMAT(@d, 'c', 'zh-cn') |
¥5.50 |
|
Indian (hi-in) |
SELECT FORMAT(@d, 'c', ‘hi-in') |
₹5.50 |
|
Russian (ru-ru) |
SELECT FORMAT(@d, 'c', ru-ru') |
5,50 ₽ |
|
Spain (gl-es) |
SELECT FORMAT(@d, 'c', 'gl-es') |
€5,50 |
Yêu cầu kỹ thuật
FORMAT() hoạt động trong SQL Server (bắt đầu từ 2012), Azure SQL Database. FORMAT() cũng hoạt động trong PostgreSQL, nhưng có hành vi khác. Bạn có thể tìm hiểu thêm trong khóa học này.
Xem thêm
Tìm hiểu thêm về SQL
Kết luận
FORMAT() đáng để học vì nó biến một điểm bất tiện của SQL thành một cách sửa trong một dòng.
Một lưu ý cần nhớ: đây là cú pháp của SQL Server và Azure SQL. PostgreSQL có hàm FORMAT() riêng, nhưng hành vi khác — vì vậy hãy kiểm tra hệ SQL của bạn trước khi dựa vào các mẫu này.
Kết quả truy vấn từ cơ sở dữ liệu hiếm khi sẵn sàng để đưa vào báo cáo. Giá thường trả về dưới dạng
1234.5thay vì$1,234.50. Ngày tháng hiển thị như2023-02-01 04:05:06khi bạn muốn định dạng dễ đọc hơn.Hàm
FORMAT()của SQL có thể hữu ích. Nó hoạt động bằng cách chuyển số và ngày giờ thành văn bản đã định dạng và có hỗ trợ khá ổn cho các đơn vị tiền tệ khác nhau hoặc một số mẫu tùy chỉnh.Hướng dẫn này sẽ giới thiệu cú pháp và bốn trường hợp sử dụng phổ biến.
FORMAT() là gì?
FORMAT()chuyển số hoặc giá trị ngày giờ thành văn bản, với các quy tắc hiển thị cụ thể.Khi nào nên dùng FORMAT() trong SQL
FORMAT()hữu dụng khi cần hiển thị ngày tháng, tiền tệ và giá trị số theo một định dạng cụ thể.Cú pháp SQL FORMAT()
Tham số
Là gì?
Value
Tham số bắt buộc, tham chiếu đến cột cần định dạng
Format
Tham số bắt buộc, chỉ định mẫu định dạng của giá trị. Chuỗi này nên là một .NET format string. Chúng tôi sẽ minh họa các định dạng cho phép trong ví dụ bên dưới
Culture
Tham số tùy chọn, chỉ định định dạng ngày/giờ theo ngôn ngữ/vùng.
Ví dụ về FORMAT()
Ví dụ 1: Định dạng biến số
phone_number
0
11-222-3333