SQL Server có chức năng Date_Format không?


8

Tất cả những gì tôi tìm thấy là một danh sách được xác định trước DateFormatmà tôi có thể chọn, như thế này

Như tôi nhớ trong MySQL (và PostgeSQL nữa?) Bạn có thể xác định Định dạng ngày của mình:

DATE_FORMAT(now(),'&m_%Y') --for 02_2012 etc.

SQL Server có điều tương tự không? Tôi thấy mọi người phải viết một hàm để làm việc đó, nó có tích hợp sẵn không?


BIÊN TẬP:

Tôi chỉ tìm thấy DatePartchức năng. Nó có thể lấy Tháng làm số, nhưng luôn trả về 1 chữ số, thậm chí tôi sử dụng datePart(MM, getdate())


Bản sao có thể có của stackoverflow.com/questions/8202257/
Khắc

1
Thông thường, định dạng nên được xử lý bởi khách hàng, không phải cơ sở dữ liệu. Điều đó đang được nói, nếu bạn phải định dạng đầu ra cơ sở dữ liệu, Martin Smith đã cung cấp các tùy chọn.
JSR

Câu trả lời:


16

Chưa.

Bạn cần sử dụng CONVERTvới một tham số kiểu hoặc hack một cái gì đó cùng với DATEPARThoặc DATENAME.

SQL Server 2012 sẽ có FORMATchức năng mặc dù chấp nhận chuỗi định dạng .NET Framework

Cú pháp:

FORMAT ( value, format [, culture ] )

Cách sử dụng ví dụ

SELECT FORMAT(getdate(), 'dd/MM/yyyy', 'en-US' ) 

Bạn luôn có thể sử dụng tích hợp CLR và tạo UDF của riêng bạn, điều tương tự cho năm 2005 hoặc 2008.


À, 2012! Ồ, tôi đoán tôi sẽ viết một UDF như bạn đã nói. Cảm ơn
Vua Chan

Điều đó sẽ thật tuyệt.
Gordon Bell

1
@KingChan và Martin: Liên quan đến việc sử dụng SQLCLR để thực hiện việc này trong SQL Server 2005/2008/2008 R2, luôn có tùy chọn tải xuống phiên bản SQL # miễn phí (mà tôi là tác giả của, nhưng Date_Format là miễn phí) và sau đó không cần phải làm bất kỳ mã hóa. Tôi có một vài ví dụ về cả hai SQL#.Date_Formatvà tích hợp FORMATtrên câu trả lời SO này: Có cách nào để lấy ngày với các định dạng tùy chỉnh trong SQL Server không? :-)
Solomon Rutzky

0

Nếu mục tiêu của bạn chỉ đơn giản là định dạng đầu ra và nó không cần duy trì trong kiểu dữ liệu thời gian, sử dụng CONVERT với mã định dạng là một công cụ tuyệt vời. Một danh sách các định dạng và mã tương ứng của chúng có thể được tìm thấy ở đây: http://msdn.microsoft.com/en-us/l Library / ms187928.aspx

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.