我有一个日期,其格式为"mm/yyyy"
,其数据类型为varchar。如何将“mm/yyyy”varchar转换为datetime?
我想日期"mm/dd/yyyy"
格式
如:存储在数据库中4/2013
我想
30/4/2013
我有一个日期,其格式为"mm/yyyy"
,其数据类型为varchar。如何将“mm/yyyy”varchar转换为datetime?
我想日期"mm/dd/yyyy"
格式
如:存储在数据库中4/2013
我想
30/4/2013
DECLARE @d VARCHAR(32) = '4/2013';
-- as a datetime
SELECT DATEADD(DAY,-1,DATEADD(MONTH,1,
CONVERT(DATETIME,'1/'[email protected],103)));
-- as a date
SELECT CONVERT(DATE, DATEADD(DAY,-1,DATEADD(MONTH,1,
CONVERT(DATETIME,'1/'[email protected],103))));
-- as an ambiguously formatted regional string
SELECT CONVERT(CHAR(10), DATEADD(DAY,-1,DATEADD(MONTH,1,
CONVERT(DATETIME,'1/'[email protected],103))),103);
是恼人的?好!首先以正确的方式存储日期。并且不要将数据库视为以特定格式存储/呈现日期的地方 - 必要时在客户端进行格式设置,而且除非受众人数非常有限,否则通常采用区域格式是一个坏主意。
CONVERT(CHAR(10),DATEADD(DAY,-1,DATEADD(MONTH,1,CONVERT(DATETIME,'1 /'+ @ d,103)),103)是工作,在上面的小变化,我纠正它,请检讨它谢谢 – Girish 2013-04-06 12:56:10
对不起,在我的iPad上键入,不知道'1'去了哪里。 – 2013-04-06 13:03:54
哪里'dd'部分去了..? – 2013-04-06 05:52:31
那么你想要一个月的最后一天?你想输出作为一个日期或作为一个不明确格式的区域字符串?你不能拥有两个。 – 2013-04-06 11:30:23
我希望月份的最后一个日期作为日期 – Girish 2013-04-06 12:52:04