Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Dapatkan tanggal dari nomor minggu di T-SQL

Jawaban Quassnoi berfungsi, tetapi membuat Anda bingung untuk membersihkan tanggal jika itu adalah tanggal di tengah hari (awal minggunya membuat Anda satu hari lebih awal dari yang Anda butuhkan jika Anda menggunakan waktu di tengah hari hari ini -- Anda dapat menguji menggunakan GETDATE()).

Saya telah menggunakan sesuatu seperti ini di masa lalu:

SELECT 
   CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL), DATECOL)), 101),
   CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL) - 6, DATECOL)), 101)

Manfaat sampingan dari ini adalah bahwa dengan menggunakan @@DATEFIRST Anda dapat menangani hari-hari awal minggu yang tidak standar (standarnya adalah hari Minggu, tetapi dengan SET @@DATEFIRST Anda dapat mengubahnya).

Tampaknya gila bahwa manipulasi tanggal sederhana di SQL Server harus menjadi rahasia ini, tapi begitulah...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan PIVOT pada catatan Berbeda

  2. Jalankan Pemicu Hanya Saat Kolom Tertentu Diperbarui (SQL Server)

  3. newid() di dalam fungsi server sql

  4. SQL INSERT INTO dari beberapa tabel

  5. Konversi 'smalldatetime' menjadi 'datetime' di SQL Server (Contoh T-SQL)