【问题标题】:Inserting German date format in SQL using VBA使用 VBA 在 SQL 中插入德语日期格式
【发布时间】:2010-11-29 12:52:02
【问题描述】:

我在这里很沮丧,这几天一直在尝试... 我想要的只是 德国用户 能够输入应该存储在 SQL Server 中的日期。日期采用以下格式“dd.mm.yyyy”。我总是收到这样的错误消息:查询表达式“#23.01.2004 00:07:00#”中的日期语法错误。 - 暂时使用 Access。

我尝试了很多方法(Thread.CultureInfo、CDate()、格式化 DateTimeStyles),但这是我最新的:

Dim dTermin As DateTime
dTermin = DateTime.Parse(txtTermin.Text)

sSQL = "INSERT INTO Termin (Termin) VALUES ("
sSQL = sSQL & "#" & dTermin & "#)"

这也给了我一个错误。但是,如果我硬编码像“10-04-2004”这样的日期,那么它可以工作。这是一个 Access 2000 db,有两个字段:ID(自动编号)和 Termin(ShortDate)。使用 Jet OLEDB 4.0 提供程序。

【问题讨论】:

  • 您希望 Access 还是 SQL Server 识别日期?不清楚
  • 抱歉,我想让 Access 识别日期,Access DB 已将表链接到 SQL Server
  • @Mitch: yyyy/mm/dd 不是 ISO。
  • 感谢大家的快速回复!这是一个巨大的帮助和赞赏!

标签: sql sql-server tsql vba


【解决方案1】:

如果我理解正确,SQL Server 日期时间分隔符是' 例如'23.03.2009'

如果 SQL Server 具有默认的 us_enlish 语言环境,那么您有第二个问题。

SET LANGUAGE us_english
GO
DECLARE @dt datetime
SET @dt = '23.03.2009' --error
GO
SET LANGUAGE german
GO
DECLARE @dt datetime
SET @dt = '23.03.2009' --ok
GO

使用 yyyydddd 或这个

SET LANGUAGE us_english
SET DATEFORMAT DMY
GO
DECLARE @dt datetime
SET @dt = '23.03.2009' --ok
GO

【讨论】:

    【解决方案2】:

    我建议在数据库中插入未本地化的日期,并仅在显示时对其进行本地化。

    【讨论】:

      【解决方案3】:

      我会使用 ISO 格式的字符串日期:YYYY/MM/DD 几乎每个系统(以及每个区域设置)都明确地理解 ISO 格式日期。

      请参阅 Tibor Karaszi 的优秀参考:The ultimate guide to the datetime datatypes

      【讨论】:

      • yyyy/mm/dd 不是 ISO。看到这里我显示 SQL 2005 也不能识别 ISO yyyymmdd stackoverflow.com/questions/1138142/…
      • 同意 gbn:即使根据链接的文章,ISO 8601 也是 YYYY-MM-DD。
      • SQL Server 2008 可以识别 'yyyymmdd' 以及 'yyyy/mm/dd'
      • SQL Server 2008 也可以识别 ISO 8601。使用它要安全得多,因为它是一个 ISO。当某些软件也接受标准解决方案时,使用某些软件碰巧接受的其他东西是没有意义的。确实,ISO 8601 也需要时间,我在之前的评论中省略了。
      【解决方案4】:

      您不应将本地化日期存储在数据库中。将它们保存在 standard format 中,然后让 ODBC 连接器或 SQL 客户端或您正在使用的任何东西 - 根据查看它们的人的文化对其进行本地化。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-10
        • 2017-04-09
        • 2017-01-13
        相关资源
        最近更新 更多