Chcę wybrać wartość = 201301
data 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ć?
Chcę wybrać wartość = 201301
data 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ć?
SELECT LEFT(CONVERT(varchar, GetDate(),112),6)
Jest to miesiąc 1, więc otrzymujesz oczekiwaną wartość. musisz zeropad miesiąc (1 -> 01), jak na tej odpowiedzi: How do I convert an int to a zero padded string in T-SQL?
SELECT CONVERT(nvarchar(6), GETDATE(), 112)
Awans na tę odpowiedź! Wiele, wiele przebojów! – Kermit
To bardzo eleganckie rozwiązanie! kciuki w górę – Nightmaresux
Ładne i proste. Możesz także usunąć unicode, jeśli chcesz: SELECT CONVERT (varchar (6), GETDATE(), 112) – jumxozizi
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)
.
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' *)
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
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.
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 –