我在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
作为输出。有人可以帮忙吗?
答案 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