Konwertuj Format daty na format DD / MMM / YYYY w SQL Server
Mam zapytanie w sql, muszę pobrać datę w formacie dd/mmm/yy
Przykład: 25/jun/2013
.
Jak mogę przekonwertować go na serwer SQL?
8 answers
Nie jestem pewien, czy istnieje dokładne dopasowanie do formatu, który chcesz. Ale można się zbliżyć z convert()
i styl 106
. Następnie zastąp spacje:
SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-20 04:50:27
Istnieje już wiele odpowiedzi i typów formatowania dla SQL server 2008. Ale ta metoda nieco niejednoznaczna i trudno byłoby zapamiętać numer w odniesieniu do konkretnego formatu daty. Dlatego w kolejnych wersjach SQL server jest lepsza opcja.
Jeśli używasz SQL Server 2012 lub nowszych wersji, powinieneś użyć funkcji Format ()
FORMAT ( value, format [, culture ] )
Z opcją kultura, możesz określić datę według swojego widzów.
DECLARE @d DATETIME = '10/01/2011';
SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result'
,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result'
,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result'
,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result';
SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result'
,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result'
,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result'
,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result';
US English Result Great Britain English Result German Result Simplified Chinese (PRC) Result
---------------- ----------------------------- ------------- -------------------------------------
10/1/2011 01/10/2011 01.10.2011 2011/10/1
US English Result Great Britain English Result German Result Chinese (Simplified PRC) Result
---------------------------- ----------------------------- ----------------------------- ---------------------------------------
Saturday, October 01, 2011 01 October 2011 Samstag, 1. Oktober 2011 2011年10月1日
Dla rozwiązania OP możemy użyć następującego formatu, o którym już wspomniał @Martin Smith:
FORMAT(GETDATE(), 'dd/MMM/yyyy', 'en-us')
Niektóre przykładowe formaty daty:
Jeśli chcesz uzyskać więcej formatów daty SQL server, powinieneś odwiedzić:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-23 09:22:29
Możemy przekonwertować datę na wiele formatów, takich jak
SELECT convert(varchar, getdate(), 106)
To zwraca dd mon yyyy
Więcej tutaj to może Ci pomóc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-20 04:51:15
Spróbuj użyć poniższego zapytania.
SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),6), ' ','/');
Wynik: 20/Jun / 13
SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),106), ' ','/');
Wynik: 20 / Jun / 2013
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-20 04:51:10
Przyjęta odpowiedź daje już najlepsze rozwiązanie przy użyciu wbudowanych metod formatowania w 2008 roku.
Należy jednak zauważyć, że zwracane wyniki zależą od języka logowania.
SET language Russian
SELECT replace(CONVERT(NVARCHAR, getdate(), 106), ' ', '/')
Zwraca
06/апр/2015
W momencie pisania.
Dla osób natykających się na to pytanie w nowszych wersjach SQL Server metoda, która pozwala uniknąć tego problemu - a potrzeba REPLACE
to
FORMAT(GETDATE(),'dd/MMM/yyyy', 'en-us')
Na 2005+ można by napisać CLR UDF, który zaakceptował DateTime, wzór formatowania i kulturę, aby symulować to samo.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-06 15:40:46
Spróbuj tego
select convert(varchar,getdate(),100)
Trzecim parametrem jest format, zakres od 100
do 114
, każdy powinien pracować dla Ciebie.
Jeśli potrzebujesz daty w dd/mmm/yyyy
Użyj tego:
replace(convert(char(11),getdate(),113),' ','-')
Zastąp getdate()
nazwą kolumny. To mi pomogło.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-14 14:49:19
Spróbuj tego:
select replace ( convert(varchar,getdate(),106),' ','/')
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-04 11:26:00
Każdy, kto próbuje ręcznie wprowadzić datę do zmiennej SQL server 'date type', używa tego formatu podczas wpisywania:
'yyyy-mm-dd'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-07 09:59:47