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

Cara mengonversi string DateTime ke DateTime di SQL Server

Di SQL Server 2008 anda dapat menggunakan datetimeoffset tipe data.

SELECT [Result] = CONVERT(datetimeoffset, '2005-08-08T00:01:00+01:00', 127)

Keluaran:

Result
----------------------------------
2005-08-08 00:01:00.0000000 +01:00

Di SQL Server 2005 dan sebelumnya Anda dapat menghitung tanggal dan offset UTC:

SELECT [LocalDate], [OffsetMinutes], [UtcDate]
FROM
(
    SELECT [IsoDate] = '2007-08-08T00:01:00+01:00'
) A
OUTER APPLY
(
    SELECT [LocalDate] = CONVERT(datetime, LEFT([IsoDate], 19), 126)
    , [OffsetMinutes] =
        CASE SUBSTRING([IsoDate], 20, 1)
            WHEN '+' THEN +1
            WHEN '-' THEN -1
        END
        * DATEDIFF(minute, 0,
            CAST(SUBSTRING([IsoDate], 21, 5) + ':00' AS datetime))
    WHERE [IsoDate] LIKE '____-__-__T__:__:__[+-]__:__'
) B
OUTER APPLY
(
    SELECT [UtcDate] = DATEADD(minute, -[OffsetMinutes], [LocalDate])
) C

Keluaran:

LocalDate               OffsetMinutes UtcDate
----------------------- ------------- -----------------------
2007-08-08 00:01:00.000 60            2007-08-07 23:01:00.000


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memeriksa Tanggal minimum di setiap pengamatan dan memperbarui bendera secara dinamis

  2. Jumlah kolom non-null di setiap baris

  3. Apakah Kunci Unik Server Sql juga merupakan Indeks?

  4. Mengubah nama database SQL

  5. SqlServer:Login gagal untuk pengguna