我有一个包含日期的表,格式为:'01 -16-1989',这是mm-dd-yyyy,但我想插入另一个格式如下的表:'1989-01-16'这是yyyy-mm-dd。我可以在insert语句中使用什么函数来执行此操作?
insert into des_table
select date from source_table
如何更新第二行以完成日期格式转换?
答案 0 :(得分:0)
您可以使用转换类型110将字符串从mm-dd-yyyy格式转换为日期:
select convert(date, [date], 110)
from source_table
然后,您可以使用代码120将其转换为yyyy-mm-dd格式的字符串:
select convert(varchar(10), convert(date, [date], 110), 121)
答案 1 :(得分:0)
您可以使用DATE_FORMAT()格式化日期
这是一种方式
SELECT DATE_FORMAT(date, '%Y-%m-%d') FROM source_table;
答案 2 :(得分:0)
除非它们实际上不是日期时间数据类型,否则您的插入应该是黄金的。
另外,要回答这个问题,您应该告诉我们您正在使用的RDBMS。
如果您正在使用MySQL,那么应该让您满意:
select DATE_FORMAT(current_date,'%y/%m/%d');
在日期注意事项中,您应该保留所有日期 ISO formated
答案 3 :(得分:0)
由于您的专栏已经是DATE
,因此您无需对插页进行任何转换。如果您希望它在特定查询结果中以某种方式显示,则可以使用CONVERT。有许多格式选项,但同样,您不必费心改变它在插页上的外观。
以下是一些资源
https://msdn.microsoft.com/en-us/library/ms187928.aspx
https://technet.microsoft.com/en-us/library/ms187928(v=sql.105).aspx