我想将日期从一个表插入另一个表。但问题是,源表将日期存储为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)
答案 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格式。这(几乎完全)毫不含糊,很容易变回日期。