0

我需要导入从印度尼西亚文件中获得的一些数据,其中一部分是“01OKT2011”形式的日期。我需要能够自动将这些转换为 T-SQL 日期时间,例如 10-01-2011 00:00:00。

我能想到的最简单的方法是创建一个查找表,其中包含一个用于外国短名称的列和一个用于月份编号的列,但由于我目前拥有的唯一源文件这一事实使得这变得更加困难仅涵盖 10 月和 11 月,我不完全确定其他月份将如何缩写。

有没有更简单的方法来做到这一点?SQL Server 中的一种内置语言是否使用相同的月份短名称?

4

1 回答 1

0

查看您的syslanguages表格以了解您的 SQL Server 安装是否支持印度尼西亚语。

假设 SQL Server 支持印度尼西亚语,请将您的语言设置为它。另外,SET DATEFORMAT ymd. 然后直接使用日期时间。

如果不支持/安装印尼语,您应该努力解决数据库之外的本地化问题(即使数据库服务器愿意理解您的月份名称,我实际上还是建议您这样做,但我将该建议保存为完全不同的问题)。

在这种情况下,以下方法可能会帮助您,如果不是实际使用,至少可以帮助您转换数据。

DATETIMEFROMPARTS(
    SUBSTRING(x, 6, 4), 
    REPLACE(...(REPLACE(SUBSTRING(x, 3, 3), 'JAN', 'Jan')...,'OKT', 'Oct'),...,'DEC', 'Dec')...),
    SUBSTRING(x, 1, 2)
)
于 2012-04-25T21:27:42.243 回答