我有800+记录的表。在这个表中我有一个名为VARCHAR的“数据”(10)数据类型列其中包含的 DD.MM.YYYY 的format.I想将其转换为smalldatetime日期。

我试过用企业管理Studio Express的转换,但我收到此错误:

The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.

我如何转换呢?

有帮助吗?

解决方案

我认为你需要做一些字符串操作得到这个工作,因为我认为SQL期待“MM.DD.YYYY”。因此,更新表格到第一个触发器的月份和日期,则转换应该通过。

update YourTable
    set Data = SUBSTRING(Data,4,3) + LEFT(Data,3) + RIGHT(Data,4)

其他提示

您可以使用:点击 SELECT ID, CAST(VarcharCol As SmallDateTime) as DateTimeCol From Test1结果 这将返回一个表varcharcol值SMALLDATETIME 然后用新值更新varcharcol的内容。

如果你不想隐式转换的 SMALLDATETIME 的,你应该使用的转换和参数的风格 。结果 DD.MM.YYYY 格式对应于式的 104 。结果 例如:

SELECT CONVERT(smalldatetime, '31.12.2018', 104) AS "Result"

Result
------
2018-12-31 00:00:00
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top