Oprócz podanych już sugestii jest jeszcze jedna możliwość, którą mogę wywnioskować z twojego pytania:
- Nadal chcesz, aby wynik był datą
- Ale chcesz `` odrzucić '' dni, godziny itp.
- Opuszczenie roku / miesiąca tylko pole daty
SELECT
DATEADD(MONTH, DATEDIFF(MONTH, 0, <dateField>), 0) AS [year_month_date_field]
FROM
<your_table>
Pobiera liczbę pełnych miesięcy od daty bazowej (0), a następnie dodaje je do tej daty bazowej. W ten sposób zaokrąglamy w dół do miesiąca, w którym przypada data.
UWAGA: W SQL Server 2008 nadal będziesz mieć dołączony TIME jako 00: 00: 00.000. To nie jest dokładnie to samo, co „usunięcie” jakiegokolwiek zapisu dnia i godziny. Również DZIEŃ ustawiony na pierwszy. np. 2009-10-01 00: 00: 00.000
źródło
Możesz sprawdzić tę stronę internetową: http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/
źródło
źródło
wynik będzie wyglądał następująco: „Grudzień 2013”
źródło
Służą do tego dwie funkcje SQL:
Szczegółowe informacje można znaleźć w dołączonej dokumentacji.
źródło
To również może być pomocne.
lub
lub
źródło
zapiszmy to w ten sposób:
YEAR(anySqlDate)
iMONTH(anySqlDate)
. WypróbujYEAR(GETDATE())
na przykład.źródło
źródło
Twoje pytanie interpretuję na dwa sposoby.
a) Potrzebujesz tylko miesiąca i roku osobno, w takim przypadku oto odpowiedź
b)
Chcesz wyświetlać od podanej daty, powiedzmy
'2009-11-24 09:01:55.483'
w formacie MIESIĄC.ROK . Więc wyjście powinno wyglądać jak11.2009
w tym przypadku.Jeśli tak ma być, spróbuj tego (wśród innych alternatyw)
źródło
Niektóre bazy danych, takie jak
MS ACCESS
lubRODBC
mogą nie obsługiwaćSQL SERVER
funkcji, ale w przypadku dowolnej bazy danych, która ma tęFORMAT
funkcję, możesz po prostu zrobić to:źródło
źródło
daje np. 201601, jeśli chcesz uzyskać sześciocyfrowy wynik
źródło
Spróbuj tego
na przykład.
źródło
Spróbuj tego:
portugalski
Wynik: maio 2019
język angielski
Wynik: maj 2019
Jeśli chcesz w innym języku, zmień „ pt-pt ” lub „ en-US ” na dowolny z tych w linku
źródło
Miałem konkretny wymóg zrobienia czegoś podobnego, w którym pokazywałby miesiąc-rok, co można zrobić w następujący sposób:
SELECT DATENAME(month, GETDATE()) + '-' + CAST(YEAR(GETDATE()) AS nvarchar) AS 'Month-Year'
W moim konkretnym przypadku musiałem to sprowadzić do 3-literowego skrótu miesiąca z 2-cyfrowym rokiem, wyglądającym mniej więcej tak:
SELECT LEFT(DATENAME(month, GETDATE()), 3) + '-' + CAST(RIGHT(YEAR(GETDATE()),2) AS nvarchar(2)) AS 'Month-Year'
źródło
Próbować
SELECT CONCAT(month(datefield), '.', year(datefield)) FROM YOURTABLE;
źródło
Moja baza danych nie obsługuje większości powyższych funkcji, jednak stwierdziłem, że to działa:
SELECT * FROM table WHERE SUBSTR(datetime_column, starting_position, number_of_strings)=required_year_and_month;
na przykład:
SELECT SUBSTR(created, 1,7) FROM table;
zwraca rok i miesiąc w formacie „rrrr-mm”
źródło
Uzyskaj miesiąc i rok od daty
źródło
Wynik: marzec-2019
źródło
Zapytanie: -
Select datename(m,GETDATE())+'-'+cast(datepart(yyyy,GETDATE()) as varchar) as FieldName
Wyjście: - styczeń-2019
ogólne pole daty, którego możemy użyć
źródło
Wynik: „RRRR-MM”
źródło
dostałem mój pożądany wynik w formacie daty w formacie 07 Mar 2018
Moja kolumna „transfer_date” to kolumna typu data-godzina i używam programu SQL Server 2017 na platformie Azure
źródło
wybierz CONCAT (MIESIĄC (GETDATE ()), „.”, ROK (GETDATE ()))
Wynik : 5.2020
wybierz CONCAT (DATENAME (MIESIĄC, GETDATE ()), „.”, ROK (GETDATE ()))
Wyjście: maj 2020
źródło