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

Cách thay đổi định dạng ngày và giờ trong T-SQL

Vấn đề:

Bạn muốn thay đổi định dạng của trường ngày tháng hoặc giá trị trong cơ sở dữ liệu SQL Server.

Ví dụ:

Cơ sở dữ liệu của chúng tôi có một bảng có tên Patient với dữ liệu trong các cột Id , FirstName , LastNameRegistrationDate .

Id FirstName LastName Ngày đăng ký
1 Jane Williams 2019-06-20
2 Gabriel Màu nâu 2019-02-02
3 Lora Dân gian ngày 11 tháng 5 năm 2016

Hãy thay đổi định dạng ngày đăng ký của từng bệnh nhân. Chúng tôi sẽ đặt tên của ngày trong tuần trước, sau đó là ngày và tên trong tháng và năm gồm 4 chữ số (ví dụ:“Thứ Sáu, ngày 27 tháng 12 năm 2019”).

Giải pháp:

Chúng tôi sẽ sử dụng hàm FORMAT () để thay đổi định dạng của ngày trong RegistrationDate cột.

SELECT  FirstName,
        LastName,
        FORMAT(RegistrationDate ,'dddd, d MMMM, yyyy')
          AS FormattedRegistrationDate
FROM Patient;

Đây là kết quả của truy vấn:

FirstName LastName FormattedRegistrationDate
Jane Williams Thứ Năm, ngày 20 tháng 6 năm 2019
Gabriel Màu nâu Thứ Bảy, ngày 2 tháng 2 năm 2019
Lora Dân gian Thứ Bảy, ngày 5 tháng 11 năm 2016

Thảo luận:

Chúng ta có thể thay đổi cách hiển thị một ngày cụ thể bằng hàm FORMAT (). Hàm này nhận hai đối số bắt buộc và một đối số tùy chọn. Trong ví dụ của chúng tôi, chúng tôi chỉ sử dụng hai đối số bắt buộc. Đầu tiên là ngày, có thể từ cột ngày / giờ / ngày giờ hoặc bất kỳ biểu thức nào trả về ngày hoặc giờ. (Trong ví dụ của chúng tôi, chúng tôi sử dụng cột RegistrationDate .) Đối số thứ hai là một chuỗi chứa định dạng ngày mới. Trong ví dụ của chúng tôi, chúng tôi đã sử dụng 'dddd, dd MMMM, yyyy' :

  • dddd - Tên của ngày trong tuần.
  • d - Ngày trong tháng, từ ngày 1 đến ngày 31.
  • MMMM - Tên đầy đủ của tháng.
  • yyyy - Năm có bốn chữ số.

Bảng dưới đây trình bày thêm các mã định dạng ngày / giờ:

specifier mô tả
d Ngày trong khoảng 1-31
đ Ngày trong khoảng 01-31
ddd Tên viết tắt của ngày trong tuần
dddd Tên đầy đủ của ngày trong tuần
M Tháng từ 1 đến 12
MM Tháng từ 01 đến 12
MMM Tên viết tắt của tháng
MMMM Tên đầy đủ của tháng
y năm 2 chữ số, từ 0 đến 99
vâng năm 2 chữ số từ 00 đến 99
yyyy năm 4 chữ số
g Kỷ nguyên (ví dụ:A.D.)
h Giờ từ 1 đến 12 (đồng hồ 12 giờ)
hh Giờ từ 01 đến 12 (đồng hồ 12 giờ)
H Giờ từ 0 đến 23 (đồng hồ 24 giờ)
HH Giờ từ 00 đến 23 (đồng hồ 24 giờ)
m Phút từ 0 đến 59
mm Phút từ 00 đến 59
s Thứ hai từ 0 đến 59
ss Thứ hai từ 00 đến 59
t Ký tự đầu tiên của SA hoặc CH (ví dụ:9A, 5P)
tt SA hoặc CH
z Thời gian bù giờ, không có số 0 phía trước (ví dụ:+3)
zz Thời gian bù giờ, với số 0 ở phía trước (ví dụ:+03)

Bạn có thể tìm hiểu thêm trong tài liệu của Microsoft về các định dạng ngày giờ chuẩn và các định dạng tùy chỉnh.

Nếu bạn muốn định dạng ngày này cho một ngôn ngữ và / hoặc quốc gia cụ thể, hãy sử dụng đối số tùy chọn thứ ba: văn hóa . Đối số này là một chuỗi chứa mã văn hóa cho một vùng hoặc quốc gia cụ thể. (Mã văn hóa được tạo thành từ mã ngôn ngữ, dấu gạch ngang và mã quốc gia.) Trong ví dụ dưới đây, chúng tôi sử dụng mã văn hóa cho Đức, mã này kết hợp mã ngôn ngữ Đức ('de') với mã quốc gia cho Đức ('DE'), tức là 'de-DE'. Ngày kết quả được hiển thị bằng tiếng Đức và được định dạng như khán giả Đức muốn xem.

SELECT  FirstName,
        LastName,
        FORMAT(RegistrationDate ,'dddd, d MMMM, yyyy', 'de-DE')
          AS FormattedRegistrationDate
FROM Patient;

Đây là kết quả của truy vấn này:

FirstName LastName Ngày đăng ký
Jane Williams Donnerstag, 20 Juni, 2019
Gabriel Màu nâu Samstag, 2 tháng 2, 2019
Lora Dân gian Samstag, ngày 5 tháng 11 năm 2016

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Định dạng ngày trong SQL:Cách xử lý nó theo cách thông minh

  2. Thiết kế Mô hình Dữ liệu cho Hệ thống Đặt phòng Khách sạn

  3. Cách nhận xét trong SQL

  4. Sự khác biệt giữa Lược đồ và Cơ sở dữ liệu là gì?

  5. Cách khai báo ngoại lệ do người dùng xác định bằng PRAGMA EXCEPTION_INIT