【问题标题】:SQL Server Date SettingsSQL Server 日期设置
【发布时间】:2010-03-08 20:04:39
【问题描述】:

我们最近将一些数据从一个 SQL 数据库实例移动到另一个位置的另一个实例。

我似乎注意到我们旧数据库实例的某些方面,其中日期作为字符串传递给 SQL 服务器,并且 SQL 服务器能够正确解析它。例如,应用程序将简单地传递一个字符串值“15/01/2010”,数据库会立即将其识别为 2010 年 1 月 5 日。SQL 服务器中是否有我需要立即打开或修改的设置,当我传递相同的字符串值时,会发生错误,因为它无法理解作为日期传递的字符串值。

感谢您的意见。

【问题讨论】:

    标签: sql-server date


    【解决方案1】:

    试试

    SET DATEFORMAT dmy
    

    但您应该只在使用字符串时使用“安全”格式

    相同的格式是 YYYYMMDD 和 yyyy-mm-ddThh:mi:ss.mmm(无空格)。这两种格式无关紧要,您的语言设置是什么

    看这里:Setting a standard DateFormat for SQL Server

    如果你需要转换输出使用 cast 或 convert

    select convert(varchar(30),getdate(),101) 
    

    03/08/2010

    select convert(varchar(30),getdate(),101) +' ' 
     +  convert(varchar(30),getdate(),108)
    

    2010 年 3 月 8 日 15:21:32

    【讨论】:

    • 我尝试将日期格式设置为 dmy 并且当我执行以下 SQL SELECT GetDate() Yields: 08/03/2010 11:13:06 AM 以及当我尝试将日期格式设置为mdy 和执行同样的SQL,日期格式还是一样的。设置似乎根本没有改变。这适用于特定的数据库实例还是适用于服务器上的所有数据库?我只需要在服务器上的数据库实例上设置它。谢谢。
    • 该设置用于将字符串转换为日期时
    • 阅读 SQLMenace 指向您的链接。它解释说,登录的默认语言决定了日期的解释方式。还有代码显示如何更改默认语言。
    猜你喜欢
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多