【问题标题】:Dates in SQL Server consistently off by 12 hoursSQL Server 中的日期始终相差 12 小时
【发布时间】:2009-06-28 20:24:45
【问题描述】:

我们的生产平台技术有:PHP、MS SQL Sever 和 IIS。

PHP 设置为时区“太平洋/奥克兰”,当前为 +12:00 GMT/UTC。

当我们从 SQL Server 检索日期时,它们始终“晚于”应有的日期 12 小时,即。 SQL Server 将它们作为 GMT 日期存储和提供,即使服务器本身的时区也是太平洋/奥克兰。

是否有隐藏的 sp 函数可以用来设置时区?如果这与时区无关,请赐教!

【问题讨论】:

    标签: php sql-server timezone


    【解决方案1】:

    你能不能打开sql server management studio,输入“select getdate()”,确定是sql server出错了吗?

    您是使用 getdate() 还是其他 sql 函数来获取日期?

    【讨论】:

    • 嗯,'SELECT GetDate()' 返回正确的日期。我认为这意味着我的问题出在其他地方。
    • 因为 Mike 是第一个向我指出它在堆栈中其他位置的方向,所以我奖励他积分。
    • 谢谢!由于您在 IIS 上,如果您碰巧在该服务器上打开了经典 ASP,您可以尝试使用以下内容创建一个 test.asp 页面: 以查看它是否是 PHP。
    【解决方案2】:

    如果您的陈述既准确又笼统,那么您应该能够通过将一行插入到具有如下日期时间列的表中来重现这一点:

    CREATE TABLE OffBy12 (
        IsThisOff datetime not null
    )
    GO
    
    INSERT INTO OffBy12 (IsThisOff) VALUES ('2009-06-28')
    
    SELECT IsThisOff
    FROM OffBy12
    

    如果你是对的,那么日期的时间部分不会是 00:00。

    如果你不正确,那么这一定是更复杂的事情。在这种情况下,您可能想说明数据是如何进入 SQL Server 的。

    【讨论】:

      猜你喜欢
      • 2015-01-17
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 2011-01-08
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      相关资源
      最近更新 更多