Próbuję przenieść funkcję MySQL DATE_FORMAT(date,'%y-%m-%d %h:%i:%s %p')
na odpowiednik MsSQL za pomocą CONVERT()
.
Jak sformatować równoważny ciąg datetime w SQL SERVER 2012, aby uzyskać ten wynik '2014-05-24 01:24:37 AM'
?Jak sformatować datetime w SQL SERVER
Odpowiedz
W SQL Server 2012, a nawet można użyć FORMAT()
:
SELECT FORMAT(CURRENT_TIMESTAMP, 'yyyy-MM-dd hh:mm:ss tt')
w poprzednich wersjach, może być konieczne do łączenia dwóch lub więcej różnych konwersji datetime aby uzyskać to, czego potrzebują, na przykład:
SELECT
CONVERT(CHAR(10), CURRENT_TIMESTAMP, 23) + ' ' +
RIGHT('0' + LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11)), 11);
Zobacz sekcję Style daty i czasu CAST and CONVERT (Transact-SQL) dla wszystkich wbudowanych stylów formatowania.
chciałbym pamiętać, że jeśli masz dobry powód do tego, mam na myśli naprawdę dobry powód, formatowanie jest zazwyczaj lepsza praca dla technologii wyświetlania danych.
Dzięki, pomogło to. – Ankit
Jestem prawie pewien, że podany przykład nie zadziała - musisz umieścić miesiące w literach: "rrrr-MM-dd". –
@Andy, myślę, że masz absolutną rację! Naprawię to, dzięki. –
Ponownie otwarte jako SQL Server 2012 ma funkcję 'format' nie w 2008. –