将varchar日期从一个表转换并插入另一个表

时间:2017-08-20 12:42:13

标签: sql-server date

我想将日期从一个表插入另一个表。但问题是,源表将日期存储为varchar,目标作为日期数据类型。

另外,我想在插入目的地时更改日期格式。

Table1
Date varchar(80) null

Table2
Date Date null

表1中的日期存储在mm-dd-yyyy中 我想将其转换为dd.mm.yyy并将其存储到Table2中。

我该如何转换它? 我在下面试过,但它没有用。

select CONVERT(VARCHAR(10),TRY_Convert(date,[Date]),104)

2 个答案:

答案 0 :(得分:1)

如果您的目标表格的日期字段为date,那么您应该做的就是将源数据转换为date类型并插入。

您希望输出的格式dd.mm.yyyy不是date格式,而是string,您始终可以使用{{1}从第二个表中获取date数据从第二个表中选择数据时,使用格式104字符串,如下所示:

convert

这里我使用了表变量,你应该使用Table1,Table2代替

答案 1 :(得分:0)

假设样式104是你想要的,你只需要一个convert()

select TRY_CONVERT(VARCHAR(10), [Date], 104)

您的问题很混乱,因为您指定是varchar而目标是日期。这意味着:

select TRY_CONVERT(DATE, [Date], 104)

我还会使用varchar“date”列修复该表,以便使用date数据类型。这是存储日期的正确方法。如果要将它们存储为字符串(偶尔需要),则使用YYYY-MM-DD格式。这(几乎完全)毫不含糊,很容易变回日期。