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

Konversi waktu tanggal di server sql

Untuk mendapatkan "25-Oct-2010"

Dengan asumsi nilai diberikan sebagai string, bukan tipe data DATETIME:

SELECT REPLACE(CONVERT(VARCHAR, CAST('2010-10-25 11:13:36.700' AS DATETIME), 106), ' ', '-')

Lihat dokumentasi CAST/CONVERT untuk format lain, meskipun yang Anda minta memerlukan pasca-pemrosesan.

Untuk mendapatkan "2010-10-25 00:00:00.000"

Cara berkinerja terbaik adalah menggunakan DATEADD &DATEDIFF:

SELECT DATEADD(d, DATEDIFF(dd, 0, '2010-10-25 11:13:36.700'), 0)

Referensi:

Pengujian

WITH sample AS (
   SELECT CAST('2010-10-25 11:13:36.700' AS DATETIME) dt)
SELECT REPLACE(CONVERT(VARCHAR, s.dt, 106), ' ', '-') AS col1,
       DATEADD(d, DATEDIFF(dd, 0, s.dt), 0) AS col2
  FROM sample s

Pengembalian:

col1          col2
-------------------------------------
25-Oct-2010   2010-10-25 00:00:00.000

Tambahan

Karena Anda menggunakan SQL Server 2005, Anda dapat membuat pemformatan tanggal menjadi lebih mudah dengan membuat fungsi SQLCLR yang memungkinkan Anda menggunakan pemformatan tanggal .NET.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Parsing XML dengan bertingkat bertingkat di SQL

  2. Alternatif untuk Cartesian dan Cross Join

  3. Kinerja server tertaut SQL Server

  4. Jumlah perbedaan DateTime dalam sql (HH.MM)

  5. Apakah SQL Server mengoptimalkan perhitungan DATEADD dalam kueri pemilihan?