Saya hanya perlu memilih hari pertama bulan dari variabel datetime yang diberikan.
Saya tahu ini cukup mudah dilakukan dengan menggunakan kode seperti ini:
select CAST(CAST(YEAR(@mydate) AS VARCHAR(4))
+ '/' + CAST(MONTH(@mydate) AS VARCHAR(2)) + '/01' AS DATETIME)
Tapi ini tidak terlalu elegan, dan mungkin juga tidak terlalu cepat.
Apakah ada cara yang lebih baik untuk melakukan ini? Saya menggunakan SQL Server 2008.
SELECT EOMONTH(@mydate) AS EndOfMonth
akan memberikan hari terakhir bulan.Selain semua jawaban di atas, cara berdasarkan pada fungsi yang diperkenalkan di
sql 2012
sumber
Dimulai dengan SQL Server 2012:
sumber
Pengecoran string (yaitu "5/1/2009") ke datetime tentu lebih mudah dibaca tetapi kami menemukan kode beberapa waktu lalu yang akan mengembalikan yang pertama bulan ...
sumber
Pertanyaan Sederhana:
sumber
Mungkin cukup cepat. Mengapa tidak membuatnya sebagai fungsi sql.
sumber
Ini juga berfungsi:
sumber
Silakan gunakan ini
Untuk Server 2012
Sebelum Server 2012
sumber
Hari pertama dan terakhir bulan ini:
sumber
sumber
Operand type clash: date is incompatible with int
. Saya kira itu karena Anda mencoba menggunakan-
operator berkencan?sumber
Ini mungkin fungsi baru, tetapi Anda juga dapat menggunakan fungsi lama:
Jika tanggal dalam variabel itu misalnya
'2017-10-29'
akan mengembalikan tanggal'2017-10-01'
https://docs.microsoft.com/en-us/sql/t-sql/functions/datefromparts-transact-sql?view=sql-server-ver15
sumber
Googler masa depan, di MySQL, coba ini:
sumber
sql-server
pertanyaan,date_sub
daninterval
memangmysql
.Saya menggunakan GETDATE () sebagai tanggal untuk bekerja, Anda dapat menggantinya dengan tanggal yang Anda butuhkan.
Begini caranya: Pertama kita memformat tanggal di YYYYMMDD ... format memotong untuk menjaga hanya 6 karakter paling kiri untuk menjaga hanya bagian YYYYMM, dan kemudian menambahkan '01' sebagai bulan - dan voila! Anda memiliki hari pertama bulan ini.
BTW, kinerjanya luar biasa!
sumber
Jika Anda melihat ini hari ini, dan menggunakan SQL server 2012 atau yang lebih baru, Anda memiliki fungsi EOMONTH yang membuat segalanya lebih mudah:
Anda dapat mengubah GETDATE () dengan variabel tanggal apa pun yang Anda inginkan.
sumber
Di sini kita dapat menggunakan kueri di bawah ini untuk tanggal pertama bulan itu dan tanggal terakhir bulan itu.
sumber
Jika menggunakan SQL Server 2012 atau lebih tinggi;
sumber
-2 akan memberi Anda hari pertama bulan lalu. yaitu, getdate () adalah 10/15/18. Hasil Anda akan 9/1/18. Ubah ke -1 dan hasil Anda adalah 10/1/18. 0 akan menjadi awal bulan depan, 11/1/2018 .. dll.
atau
sumber
Coba jalankan kueri berikut:
SELECT DATE_ADD(DATE_ADD(LAST_DAY(CURRENT_DATE-INTERVAL 1 DAY),INTERVAL 1 DAY),INTERVAL -1 MONTH)
sumber
pilih CONVERT (tanggal, DATEADD (dd, - (DATEPART (dd, getdate ()) - 1), getdate ()), 120)
Fungsi ini akan memberi Anda tanggal bagian dari tanggal mulai bulan itu
sumber
.................................................. ...................
Jika Anda tidak ingin waktu, maka konversikan ke DATE atau jika ingin membuat waktu ke 0:00:00, Konversikan ke DATE dan kemudian kembali ke DATETIME.
Ubah GETDATE () ke tanggal yang Anda inginkan
sumber
Saya pribadi merekomendasikan bahwa sql di bawah ini karena ketika saya mencoba menggunakan fungsi tanggal dalam klausa kondisi, itu memperlambat kecepatan permintaan saya sangat banyak.
toh merasa bebas untuk mencoba ini.
sumber
Bukan untuk bersaing dengan salah satu pemikir hebat di sini, tetapi saran sederhana sedikit berbeda dengan jawaban yang diterima di atas.
sumber
Saya suka menggunakan
FORMAT
, Anda bahkan dapat menentukan waktusumber
Di Sql Server 2012,
sumber
Kueri ini harus bekerja dengan baik di MySQL:
sumber
Bagi siapa pun yang masih mencari jawaban, ini berfungsi seperti pesona dan menghilangkan tanggal. Stempel waktu bersifat opsional, seandainya perlu ditentukan, tetapi berfungsi juga.
sumber
Dapatkan Tanggal Pertama dan Tanggal Terakhir di Tanggal yang kami berikan sebagai parameter dalam SQL
sumber
Begini cara Anda melakukannya di MySQL:
sumber
SELECT FORMAT(GETDATE(), 'yyyy-MM-01')