转换VARCHAR列SMALLDATETIME
-
27-09-2019 - |
题
我有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
不隶属于 StackOverflow