【发布时间】:2009-07-21 08:14:46
【问题描述】:
我们正在为旧版 VB6 应用添加法语支持。
最初的开发人员在写入数据库时使用了多种日期格式,但 SQL 似乎并不介意,因为它都是英文的。 (2009 年 3 月 31 日或 2009-03-31 等...)
当您尝试在法国机器上运行应用程序时,您会得到:
[-2147217913][Microsoft][ODBC SQL Server Driver][SQL Server]将字符串转换为 smalldatetime 数据类型时出现语法错误。
我认为问题在于 SQL 看起来像 set xxxx='31-mars-2009' 并且我们拥有的 SQL Server 可以理解英语但不能理解法语。
最初的修复是使用 Format(string,"short date") 似乎可以修复它,但我认为这不是 100% 的修复它。 (注意:我认为短日期工作正常,有一个文本框必须转换为字符串。)
我玩过 SET LANGUAGE,但这似乎没有帮助(但我可能不知道自己在做什么。)
我相信“最正确”的解决方案是使用 YYYYMMDD 格式化所有日期数字。对吗?
(该应用永远不需要移植到任何其他语言,只需要英语和法语。)
【问题讨论】:
-
Format(mydate, "mm/dd/yyyy") 有效吗?
-
对不起,我没有法语机器可以看到它返回的内容,当你给出一个日期时,比如 31-mars-2009
-
@Raymond:请使用 sql-server 标签而不是“mssql”。主题也一样,真的。没有“MSSQL”之类的东西。
-
您不需要法国机器。使用控制面板 - 区域设置来更改区域设置。 Format(mydate, "mm/dd/yyyy") 是美国特有的,在国外并不总是有效。例如。在英国,我们使用 dd/mm/yyyy
标签: sql-server vb6 internationalization