Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chuyển đổi hiệu quả ngày giữa UTC và giờ địa phương (tức là. PST) trong SQL 2005

Tạo hai bảng và sau đó kết hợp với chúng để chuyển đổi ngày giờ GMT đã lưu trữ thành giờ địa phương:

TimeZones     e.g.
---------     ----
TimeZoneId    19
Name          Eastern (GMT -5)
Offset        -5

Tạo bảng tiết kiệm ánh sáng ban ngày và điền vào bảng đó với càng nhiều thông tin càng tốt (luật địa phương thay đổi liên tục nên không có cách nào để dự đoán dữ liệu sẽ như thế nào trong các năm trong tương lai)

DaylightSavings
---------------
TimeZoneId    19
BeginDst      3/9/2008 2:00 AM
EndDst        11/2/2008 2:00 AM

Tham gia với họ như thế này:

inner join  TimeZones       tz on x.TimeZoneId=tz.TimeZoneId
left join   DaylightSavings ds on tz.TimeZoneId=ds.LocalTimeZone 
    and x.TheDateToConvert between ds.BeginDst and ds.EndDst

Chuyển đổi các ngày như thế này:

dateadd(hh, tz.Offset + 
    case when ds.LocalTimeZone is not null 
    then 1 else 0 end, TheDateToConvert)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhiều câu lệnh INSERT so với một câu lệnh INSERT với nhiều GIÁ TRỊ

  2. Xác thực email TSQL (không có regex)

  3. Thay đổi đối chiếu SQL Server thành phân biệt chữ hoa chữ thường từ phân biệt chữ hoa chữ thường?

  4. Cách gửi email từ SQL Server (T-SQL)

  5. Truy vấn PIVOT trên các bản ghi riêng biệt