将YYYY-MM-DD转换为MM / DD / YYYY

时间:2018-03-08 18:37:22

标签: sql sql-server tsql

我在YYYY-MM-DD的附加信息表中有这个DOB列。我需要将DOB:1949-06-15转换成DOB格式:MM / DD / YYYY。

我有

SELECT CONVERT(VARCHAR(10), ai.ADDLINFO_INDEX_21, 101) as 'DOB'

但我仍然得到这个结果:1949-06-15

我甚至尝试过

REPLACE(CONVERT(VARCHAR, ai.ADDLINFO_INDEX_21, 101), '-', '/')

但结果是1949/06/15

我正在寻找06/15/1949作为输出。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

从评论中看来,您正在保存相当于日期的字符串。您可以将字符串转换为date数据类型,然后使用convert函数进行格式输出。 例如:

DECLARE @mydate char(10) = '1949-06-15'
SELECT CONVERT(varchar(10), CAST(@mydate as date), 101)

产地:

06/15/1949

答案 1 :(得分:2)

您需要使用REPLACE和CONVERT函数。请试试这个:

SELECT REPLACE(CONVERT(varchar(10), CONVERT(datetime, '2010-02-11', 120), 101), '/', '-')

编辑:刚刚注意到,您希望输出中的/代替-。在这种情况下,请删除替换,如:

SELECT CONVERT(varchar(10), CONVERT(datetime, '2010-02-11', 120), 101)

P.S。假设您使用的是Sql Server 2008。

编辑2:由于您从另一个表的属性接收日期值,因此您需要使用以下内容:

SELECT CONVERT(varchar(10), CONVERT(datetime,  ai.ADDLINFO_INDEX_21, 120), 101)
from ai

假设ai是表名。如果不是,请使用带有别名ai的表名,例如:

from tablename ai