Saya membutuhkan bulan + tahun dari datetime di SQL Server seperti 'Jan 2008'. Saya mengelompokkan kueri berdasarkan bulan, tahun. Saya telah mencari dan menemukan fungsi seperti datepart, convert, dll., Tetapi tidak ada yang berguna untuk ini. Apakah saya melewatkan sesuatu di sini? Apakah ada fungsi untuk ini?
sql
sql-server
Malik Daud Ahmad Khokhar
sumber
sumber
Jawaban:
Jika Anda maksud Anda ingin mereka kembali sebagai string, dalam format itu;
SELECT CONVERT(CHAR(4), date_of_birth, 100) + CONVERT(CHAR(4), date_of_birth, 120) FROM customers
Berikut adalah opsi format lainnya
sumber
select datepart(month,getdate()) -- integer (1,2,3...) ,datepart(year,getdate()) -- integer ,datename(month,getdate()) -- string ('September',...)
sumber
datepart(month,getdate())
dandatepart(year,getdate())
. Apakah bulan dan tahun itu ?Mulai SQL Server 2012, Anda dapat menggunakan:
SELECT FORMAT(@date, 'yyyyMM')
sumber
Menggunakan:
select datepart(mm,getdate()) --to get month value select datename(mm,getdate()) --to get name of month
sumber
Lucu, saya hanya bermain-main menulis kueri yang sama ini di SQL Server dan kemudian LINQ.
SELECT DATENAME(mm, article.Created) AS Month, DATENAME(yyyy, article.Created) AS Year, COUNT(*) AS Total FROM Articles AS article GROUP BY DATENAME(mm, article.Created), DATENAME(yyyy, article.Created) ORDER BY Month, Year DESC
Ini menghasilkan ouput berikut (contoh).
sumber
Di SQL server 2012, di bawah ini dapat digunakan
pilih FORMAT (getdate (), 'MMM yyyy')
Ini memberikan "Jun 2016" yang tepat
sumber
Bagaimana dengan ini?
Select DateName( Month, getDate() ) + ' ' + DateName( Year, getDate() )
sumber
sumber
Format itu tidak ada. Anda perlu melakukan kombinasi dua hal,
select convert(varchar(4),getdate(),100) + convert(varchar(4),year(getdate()))
sumber
cara terbaik untuk melakukannya adalah dengan:
itu akan mempertahankan tipe datetime Anda
sumber
mengembalikan nama bulan penuh, -, misalnya setahun penuh
March-2017
sumber
Saya memiliki masalah yang sama dan setelah melihat sekeliling saya menemukan ini:
SELECT DATENAME(yyyy, date) AS year FROM Income GROUP BY DATENAME(yyyy, date)
Ini bekerja dengan baik!
sumber
Mengubah tanggal menjadi yang pertama setiap bulan memungkinkan Anda untuk Mengelompokkan Berdasarkan dan Memesan Berdasarkan satu atribut, dan itu lebih cepat menurut pengalaman saya.
declare @mytable table(mydate datetime) declare @date datetime set @date = '19000101' while @date < getdate() begin insert into @mytable values(@date) set @date = dateadd(day,1,@date) end select count(*) total_records from @mytable select dateadd(month,datediff(month,0,mydate),0) first_of_the_month, count(*) cnt from @mytable group by dateadd(month,datediff(month,0,mydate),0)
sumber
---Lalmuni Demos--- create table Users ( userid int,date_of_birth date ) ---insert values--- insert into Users values(4,'9/10/1991') select DATEDIFF(year,date_of_birth, getdate()) - (CASE WHEN (DATEADD(year, DATEDIFF(year,date_of_birth, getdate()),date_of_birth)) > getdate() THEN 1 ELSE 0 END) as Years, MONTH(getdate() - (DATEADD(year, DATEDIFF(year, date_of_birth, getdate()), date_of_birth))) - 1 as Months, DAY(getdate() - (DATEADD(year, DATEDIFF(year,date_of_birth, getdate()), date_of_birth))) - 1 as Days, from users
sumber
memberikan format "2006-04"
sumber
Pertanyaannya adalah tentang SQL Server 2005, banyak jawaban di sini adalah untuk versi SQL Server yang lebih baru.
select convert (varchar(7), getdate(),20) --Typical output 2015-04
SQL Server 2005 tidak memiliki fungsi tanggal yang diperkenalkan di SQL Server 2008
sumber
Ya, Anda dapat menggunakan
datename(month,intime)
untuk mendapatkan bulan dalam teks.sumber
Jawaban: MONTH_ Januari Januari September Oktober Desember Oktober September
sumber
Ini bekerja dengan baik.
DECLARE @pYear VARCHAR(4) DECLARE @pMonth VARCHAR(2) DECLARE @pDay VARCHAR(2) SET @pYear = RIGHT(CONVERT(CHAR(10), GETDATE(), 101), 4) SET @pMonth = LEFT(CONVERT(CHAR(10), GETDATE(), 101), 2) SET @pDay = SUBSTRING(CONVERT(CHAR(10), GETDATE(), 101), 4,2) SELECT @pYear,@pMonth,@pDay
sumber
Berikut ini bekerja dengan sempurna! Saya baru saja menggunakannya, coba saja.
sumber