Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chuỗi định dạng ngày / giờ tùy chỉnh được hỗ trợ bởi FORMAT () trong SQL Server

Bài viết này cung cấp tham chiếu cho các mã định dạng ngày và giờ tùy chỉnh có thể được sử dụng khi định dạng ngày và / hoặc giờ bằng FORMAT() trong SQL Server, cùng với các ví dụ.

Bạn có thể kết hợp bất kỳ mã định dạng nào trong số này để tạo ra một chuỗi định dạng tùy chỉnh. Xem bên dưới để biết ví dụ về mã và giải thích về cách hoạt động của chuỗi định dạng tùy chỉnh.

Các ví dụ trong bảng giả định một bộ ngày giờ giá trị của 2080-05-01 23:09:08.1234567 +07:00 .

Chuỗi định dạng Mô tả Ví dụ
d Ngày trong tháng, từ ngày 1 đến ngày 31. 1
dd Ngày trong tháng, từ ngày 01 đến ngày 31. 01
ddd Tên viết tắt của ngày trong tuần. Thứ Tư
dddd Tên đầy đủ của ngày trong tuần. Thứ Tư
f Phần mười giây trong giá trị ngày và giờ. 1
ff Phần trăm của giây trong giá trị ngày và giờ. 12
fff Phần nghìn giây trong giá trị ngày và giờ. 123
ffff Phần mười nghìn của giây trong giá trị ngày và giờ. 1234
fffff Phần trăm nghìn của giây trong giá trị ngày và giờ. 12345
ffffff Phần triệu giây trong giá trị ngày và giờ. 123456
fffffff Mười phần triệu giây trong giá trị ngày và giờ. 1234567
F Nếu khác 0, phần mười giây trong giá trị ngày và giờ. 1
FF Nếu khác 0, phần trăm của giây trong giá trị ngày và giờ. 12
FFF Nếu khác 0, thì mili giây trong giá trị ngày và giờ. 123
FFFF Nếu khác 0, phần mười nghìn của giây trong giá trị ngày và giờ. 1234
FFFFF Nếu khác 0, giá trị phần trăm nghìn của giây trong giá trị ngày và giờ. 12345
FFFFFF Nếu khác 0, phần triệu của giây trong giá trị ngày và giờ. 123456
FFFFFFF Nếu khác 0, thì mười phần triệu của giây trong giá trị ngày và giờ. 1234567
g Thời kỳ hoặc thời đại. A.D.
gg Thời kỳ hoặc thời đại. A.D.
h Giờ, sử dụng đồng hồ 12 giờ từ 1 đến 12. 11
hh Giờ, sử dụng đồng hồ 12 giờ từ 01 đến 12. 11
H Giờ, sử dụng đồng hồ 24 giờ từ 0 đến 23. 23
HH Giờ, sử dụng đồng hồ 24 giờ từ 00 đến 23. 23
K Thông tin múi giờ. +07:00
m Phút, từ 0 đến 59. 9
mm Phút, từ 00 đến 59. 09
M Tháng, từ 1 đến 12. 5
MM Tháng, từ 01 đến 12. 05
MMM Tên viết tắt của tháng. Tháng 5
MMMM Tên đầy đủ của tháng. Tháng 5
s Thứ hai, từ 0 đến 59. 8
ss Cái thứ hai, từ 00 đến 59. 08
t Ký tự đầu tiên của bộ chỉ định AM / PM. P
tt Người chỉ định AM / PM. CH
y Năm, từ 0 đến 99. 80
yy Năm, từ 00 đến 99. 80
yyy Năm, có ít nhất ba chữ số. 2080
yyyy Năm dưới dạng số có bốn chữ số. 2080
yyyyy Năm dưới dạng số có năm chữ số. 02080
z Số giờ được bù đắp từ UTC, không có số 0 ở đầu. +7
zz Chênh lệch giờ so với UTC, với số 0 ở đầu cho giá trị một chữ số. +07
zzz Chênh lệch giờ và phút so với giờ UTC. +07:00
: Dấu phân cách thời gian. :
/ Dấu phân cách ngày. /
"string" Dấu phân cách chuỗi chữ. chuỗi
% Xác định ký tự sau làm mã định dạng tùy chỉnh.
\ Ký tự thoát.

Bất kỳ ký tự nào khác được sao chép vào chuỗi kết quả không thay đổi.

Quan trọng: Khi sử dụng chuỗi định dạng tùy chỉnh gồm một ký tự, bạn nên thêm vào trước nó bằng dấu phần trăm (% ). Ngoài ra, bạn có thể thêm một khoảng trắng. Nếu bạn không làm điều này, bạn sẽ nhận được NULL hoặc mã định dạng có thể được hiểu là bộ định dạng chuẩn và bạn sẽ nhận được kết quả không mong muốn.

Chuỗi định dạng tùy chỉnh là gì?

Chuỗi định dạng tùy chỉnh bao gồm một hoặc nhiều mã định dạng tùy chỉnh. Bảng trên liệt kê các mã định dạng tùy chỉnh có sẵn để định dạng các giá trị ngày và giờ thành một chuỗi.

Ngoài ra còn có các chuỗi định dạng ngày và giờ tiêu chuẩn. Mỗi trong số này là một bí danh cho một chuỗi định dạng tùy chỉnh. Chuỗi định dạng tiêu chuẩn bao gồm một mã định dạng duy nhất, vì vậy, chúng nhanh hơn để sử dụng (nhưng kém linh hoạt hơn so với chuỗi định dạng tùy chỉnh).

Bất kỳ chuỗi định dạng nào không phải là chuỗi định dạng ngày và giờ chuẩn được hiểu là chuỗi định dạng ngày và giờ tùy chỉnh.

Ví dụ về cách sử dụng

Cách hoạt động của các bộ chỉ định định dạng tùy chỉnh là bạn có thể kết hợp chúng với nhau để tạo thành một chuỗi định dạng tùy chỉnh khi sử dụng FORMAT() hàm số. Điều này xác định cách kết quả được định dạng.

Dưới đây là một số ví dụ:

DECLARE @date datetimeoffset;
SET @date = '2080-05-01 23:09:08.1234567 +07:00';
SELECT 
  FORMAT(@date, 'd, MMM yy') AS 'd, MMM yy',
  FORMAT(@date, 'dd, MMMM yyyy') AS 'dd, MMMM yyyy',
  FORMAT(@date, 'dddd, MMM dd yyyy') AS 'dddd, MMM dd yyyy',
  FORMAT(@date, 'hh:mm:ss') AS 'hh:mm:ss',
  FORMAT(@date, 'hh:mm tt') AS 'hh:mm tt';

Kết quả:

+-------------+-----------------+------------------------+------------+------------+
| d, MMM yy   | dd, MMMM yyyy   | dddd, MMM dd yyyy      | hh:mm:ss   | hh:mm tt   |
|-------------+-----------------+------------------------+------------+------------|
| 1, May 80   | 01, May 2080    | Wednesday, May 01 2080 | 11:09:08   | 11:09 PM   |
+-------------+-----------------+------------------------+------------+------------+

Vì vậy, nó cho phép rất linh hoạt trong cách bạn trình bày ngày và giờ của mình.

Dưới đây là ví dụ về việc sử dụng chuỗi định dạng bao gồm một mã định dạng duy nhất.

DECLARE @date datetimeoffset;
SET @date = '2080-05-01 23:09:08.1234567 +07:00';
SELECT 
  FORMAT(@date, '%d') AS '%d',
  FORMAT(@date, '%M') AS '%M',
  FORMAT(@date, '%K') AS '%K',
  FORMAT(@date, '%z') AS '%z';

Kết quả:

+------+------+--------+------+
| %d   | %M   | %K     | %z   |
|------+------+--------+------|
| 1    | 5    | +07:00 | +7   |
+------+------+--------+------+

Như đã đề cập, bạn nên thêm các ký tự này với một dấu phần trăm để tránh nhận được NULL và để công cụ chỉ định định dạng không vô tình được hiểu là một chuỗi định dạng chuẩn.

Đây là những gì sẽ xảy ra nếu tôi xóa dấu phần trăm khỏi ví dụ trước:

DECLARE @date datetimeoffset;
SET @date = '2080-05-01 23:09:08.1234567 +07:00';
SELECT 
  FORMAT(@date, 'd') AS 'd',
  FORMAT(@date, 'M') AS 'M',
  FORMAT(@date, 'K') AS 'K',
  FORMAT(@date, 'z') AS 'z';

Kết quả:

+----------+-------+------+------+
| d        | M     | K    | z    |
|----------+-------+------+------|
| 5/1/2080 | May 1 | NULL | NULL |
+----------+-------+------+------+

Chúng tôi nhận được một kết quả hoàn toàn khác.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao sử dụng Chọn 100 Phần trăm Hàng đầu?

  2. Chuyển đổi ‘time’ thành ‘datetime2’ trong SQL Server (Ví dụ T-SQL)

  3. Giá trị NULL bên trong mệnh đề NOT IN

  4. Thủ tục được lưu trữ - trả về danh tính dưới dạng tham số đầu ra hoặc đại lượng vô hướng

  5. Cách thay đổi màu và phông chữ trong SQL Server Management Studio (SSMS) - Hướng dẫn SQL Server / TSQL Phần 12