将 varchar 列转换为smalldatetime

发布于 2024-09-25 17:03:26 字数 322 浏览 6 评论 0原文

我有一个包含 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

享受孤独 2024-10-02 17:03:26

我认为您需要进行一些字符串操作才能使其正常工作,因为我认为 SQL 需要“MM.dd.yyyy”。因此,更新您的表以首先翻转月份和日期,然后应该进行转换。

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

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.

update YourTable
    set Data = SUBSTRING(Data,4,3) + LEFT(Data,3) + RIGHT(Data,4)
╰ゝ天使的微笑 2024-10-02 17:03:26

您可以使用:
从 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.

雨轻弹 2024-10-02 17:03:26

如果您不想隐式转换为smalldatetime,则应使用CONVERT 和参数 style
dd.MM.yyyy 格式对应于样式 104
例如 :

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

Result
------
2018-12-31 00:00:00

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 :

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

Result
------
2018-12-31 00:00:00
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文