Apakah SQL Server memiliki fungsi Date_Format?


8

Yang saya temukan hanyalah daftar standar DateFormatyang dapat saya pilih, seperti ini

Seperti yang saya ingat di MySQL (dan PostgeSQL juga?) Anda dapat menentukan Format Tanggal Anda:

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

Apakah SQL Server memiliki hal yang sama? Saya melihat orang harus menulis fungsi untuk melakukan hal seperti itu, apakah ia memiliki fungsi bawaan?


EDIT:

Saya baru saja menemukan DatePartfungsinya. Dapat mengambil Bulan sebagai angka, tetapi selalu mengembalikan 1 digit, bahkan saya gunakan datePart(MM, getdate())



1
Biasanya, pemformatan harus ditangani oleh klien, bukan database. Yang sedang berkata, jika Anda harus memformat output database, Martin Smith telah memberikan opsi.
JSR

Jawaban:


16

Belum.

Anda perlu menggunakan CONVERTparameter style atau meretas sesuatu bersama dengan DATEPARTatau DATENAME.

SQL Server 2012 akan memiliki FORMATfungsi meskipun yang menerima string format .NET Framework

Sintaksis:

FORMAT ( value, format [, culture ] )

Contoh Penggunaan

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

Anda selalu dapat menggunakan integrasi CLR dan membuat UDF Anda sendiri yang melakukan hal yang sama untuk 2005 atau 2008.


Ahhh, 2012! Oh well, saya kira saya akan menulis UDF seperti yang Anda katakan. Terima kasih
Raja Chan

Itu akan luar biasa.
Gordon Bell

1
@ KingChan dan Martin: Mengenai penggunaan SQLCLR untuk mencapai hal ini di SQL Server 2005/2008/2008 R2, selalu ada opsi untuk mengunduh versi gratis dari SQL # (yang saya penulis, tetapi Date_Format gratis) dan maka tidak perlu melakukan pengkodean. Saya punya beberapa contoh keduanya SQL#.Date_Formatdan built-in FORMATpada jawaban SO ini: Apakah ada cara untuk mendapatkan tanggal dengan format khusus di SQL Server? :-)
Solomon Rutzky

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.