将varchar列转换为datetime

时间:2018-12-24 17:24:45

标签: sql sql-server

我有一个表,其中有一个列dateofbirth varchar(10)。里面的所有数据都像这样'02/01/1990'存储。

我需要将其转换为datetime。我已经尝试过

CAST(DateofBirth AS DATEITME) AS BirthDate

但是当我尝试导入时,我仍然收到此错误:

  

将varchar数据类型转换为datetime数据类型导致值超出范围”

我需要这样:

1990-02-01 00:00:00:000

4 个答案:

答案 0 :(得分:1)

SELECT CONVERT(Datetime,'2011-09-28 18:01:00',120)-将其转换为日期时间SELECT CONVERT(VARCHAR(30),@date,105)-意大利语格式[28- 09-2011 18:01:00] +''+ SELECT CONVERT(VARCHAR(30),@date,108)-完整日期[带时间/分钟/秒]

答案 1 :(得分:0)

如果您尝试在sql查询中执行此操作,则有语法可以执行此操作。 这里的链接.. SQL Server Convert Varchar to Datetime

答案 2 :(得分:0)

您的演员表声明对我有用:

    <script src="./car.js"></script>
    <script src="./index.js"></script>

结果:

Declare @dateofbirth varchar(10) = '02/01/1990'
select cast(@dateofbirth as datetime)AS BirthDate

答案 3 :(得分:0)

您需要将MM / DD / YYYY格式的Varchar转换为Datetime。

Sql服务器识别出一组能够自动解析的预定义日期格式。参见this cheat list

您的输入格式对应于sql server日期格式101,因此您可以执行以下操作:

SELECT CONVERT(Datetime, '02/01/1990', 101)