2013-01-08 15 views
27

Chcę wybrać wartość = 201301data Konwersja do formatu RRRRMM

select getdate(), cast(datepart(year, getdate()) as varchar(4))+cast(datepart(MONTH, getdate()) as varchar(2)) 

zwraca 20131

co jest normalnym sposobem, aby to zrobić?

+0

Aby uzyskać więcej informacji, sprawdź ten link na tej liście inny format daty obsługuje serwer sql. https://msdn.microsoft.com/en-us/library/ms187928.aspx –

Odpowiedz

30
SELECT LEFT(CONVERT(varchar, GetDate(),112),6) 
61
SELECT CONVERT(nvarchar(6), GETDATE(), 112) 
+6

Awans na tę odpowiedź! Wiele, wiele przebojów! – Kermit

+0

To bardzo eleganckie rozwiązanie! kciuki w górę – Nightmaresux

+1

Ładne i proste. Możesz także usunąć unicode, jeśli chcesz: SELECT CONVERT (varchar (6), GETDATE(), 112) – jumxozizi

2

Właściwie to jest właściwy sposób, aby uzyskać to, co chcesz, o ile można użyć MS SQL 2014 (który w końcu włącza łańcuchy formatu niestandardowego dla dat).

Aby uzyskać yyyymm zamiast yyyym, można użyć ten mały trick:

select 
right('0000' + cast(datepart(year, getdate()) as varchar(4)), 4) 
+ right('00' + cast(datepart(month, getdate()) as varchar(2)), 2) 

Jest to szybsze i bardziej niezawodne niż gettings częściach convert(..., 112).

1

można przekonwertować datę w wielu formatach, na przykład:

CONVERT(NVARCHAR(10), DATE_OF_DAY, 103) => 15/09/2016 
CONVERT(NVARCHAR(10), DATE_OF_DAY, 3) => 15/09/16 

Syntaxe:

CONVERT('TheTypeYouWant', 'TheDateToConvert', 'TheCodeForFormating' *) 
  • Kod jest liczbą całkowitą, tutaj 3 to trzecia formatowanie bez wieku, jeśli chcesz stulecie zmienić kod na 103.

W twoim przypadku, właśnie konwertowane i ograniczyć wielkość przez nvarchar (6) tak:

CONVERT(NVARCHAR(6), DATE_OF_DAY, 112) => 201609 

Zobacz więcej na: http://www.w3schools.com/sql/func_convert.asp

0

Bardziej efektywna metoda, która używa całkowitą matematyki zamiast strun/varchars, że spowoduje typu int zamiast typu ciąg jest:

SELECT YYYYMM = (YEAR(GETDATE()) * 100) + MONTH(GETDATE()) 

dodaje dwa zera po prawej stronie bieżącego roku, a następnie dodaje miesięcy do dodanymi dwoma zerami.

Powiązane problemy