我有一个以"mm/yyyy"
格式存储的日期,它的数据类型是 varchar。
我想以"mm/dd/yyyy"
格式获取日期
eg:4/2013
存储在数据库中
我想
30/4/2013
我有一个以"mm/yyyy"
格式存储的日期,它的数据类型是 varchar。
我想以"mm/dd/yyyy"
格式获取日期
eg:4/2013
存储在数据库中
我想
30/4/2013
DECLARE @d VARCHAR(32) = '4/2013';
-- as a datetime
SELECT DATEADD(DAY,-1,DATEADD(MONTH,1,
CONVERT(DATETIME,'1/'+@d,103)));
-- as a date
SELECT CONVERT(DATE, DATEADD(DAY,-1,DATEADD(MONTH,1,
CONVERT(DATETIME,'1/'+@d,103))));
-- as an ambiguously formatted regional string
SELECT CONVERT(CHAR(10), DATEADD(DAY,-1,DATEADD(MONTH,1,
CONVERT(DATETIME,'1/'+@d,103))),103);
这很烦人吗?好的!首先以正确的方式存储日期。并且停止将数据库视为以特定格式存储/呈现日期的地方 - 在必要时在客户端进行格式化,通常区域格式无论如何都是一个坏主意,除非您的受众非常有限。