将 varchar 列转换为smalldatetime
我有一个包含 800 多条记录的表。在此表中,我有一个名为 varchar(10) 数据类型的“Data”列,其中包含 dd.MM.yyyy 格式的日期。我想将其转换为smalldatetime。
我尝试使用 Enterprise Management Studio Express 进行转换,但收到此错误:
The conversion of char data type tosmalldatetime data type result in an out-of-rangesmalldatetime value.
我该如何转换它?
I have a table with 800+ records. In this table I have a column named 'Data' of varchar(10) datatype which contains dates in dd.MM.yyyy format.I want to convert it to smalldatetime.
I've tried converting it using Enterprise Management Studio Express, but I receive this error:
The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.
How can I convert it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为您需要进行一些字符串操作才能使其正常工作,因为我认为 SQL 需要“MM.dd.yyyy”。因此,更新您的表以首先翻转月份和日期,然后应该进行转换。
I think you'll need to do a little string manipulation to get this to work as I think SQL is expecting 'MM.dd.yyyy'. So, update your table to flip-flop the month and day first, then the conversion should go through.
您可以使用:
从 Test1 选择 ID,CAST(VarcharCol As SmallDateTime) 作为 DateTimeCol
这将返回一个表,其中 varcharcol 值为smalldatetime
然后用新值更新 varcharcol 的内容。
You can use:
SELECT ID, CAST(VarcharCol As SmallDateTime) as DateTimeCol From Test1
This will return a table with varcharcol values as smalldatetime
Then update the content of varcharcol with the new values.
如果您不想隐式转换为smalldatetime,则应使用CONVERT 和参数 style。
dd.MM.yyyy 格式对应于样式 104。
例如 :
If you don't want implicit conversion to smalldatetime, you should use CONVERT and the argument style.
dd.MM.yyyy format correspond to style 104.
For example :