【问题标题】:Store Current Datetime according to client side timezone in sqlServer根据客户端时区在sql Server中存储当前日期时间
【发布时间】:2012-08-23 19:06:29
【问题描述】:
我在数据类型 datetime 的 sql 表中有 dateTimeAuth 列,它的默认值是 (getdate()) 如果我在离线模式下运行我的项目,它会返回我当前时间。
当我将它上传到实时服务器时,它会存储默认时区 GMT 的当前时间。我希望根据 IST 存储值。怎么办?
根据 GMT 存储的值:2010 年 8 月 26 日下午 1:02:28
实际时间根据 IST :8/26/2010 7:02:28 PM
【问题讨论】:
标签:
sql
sql-server
time
timezone
【解决方案1】:
getdate() 将始终返回服务器所在的日期和时间。如果您想要用户时区的日期和时间,则需要从应用程序发送日期并将其作为常规 dateTime 变量插入
但如果您使用的是 SQL 2008,则可以使用
SELECT SYSDATETIMEOFFSET()
获取您所在时区的日期。
您还可以为其添加日期(从 UTC = IST +5:30)
SELECT SWITCHOFFSET(SYSDATETIMEOFFSET(), '+05:30')