请问如何返回一个日期的"年-月"部分,不要日
比如现有日期2012-11-06,想要得到2012-11应该怎么做呢?
sql2000 sp4
------最佳解决方案--------------------declare @datetime datetime
set @datetime='2012-1-1'
select ltrim(year(@datetime))+'-'+ltrim(month(@datetime))
select convert(varchar(7),@datetime,120)
select left(convert(varchar(23),@datetime,120)),left(convert(varchar(23),@datetime,120)))-charindex('-',reverse(convert(varchar(23),@datetime,120))))
------其他解决方案--------------------select left(convert(varchar(10),'2012-11-6',23),7)
------其他解决方案--------------------select left('2012-11-06',7)
------其他解决方案--------------------
可以
------其他解决方案--------------------select CONVERT(varchar(7),GETDATE(),120)
/*
-------
2012-11
(1 行受影响)
*/
------其他解决方案--------------------只能通过这种对字符串的截取来达到目的吗?有没有直接的方式呢?
按照上面的方法,如果源日期是"2012-1-1"则得到的结果是"2012-1-"
------其他解决方案--------------------
select convert(varchar(7),列名,120) as 日期 from 表 where 条件
------其他解决方案--------------------哎 在access的时候只要指定格式为yyyy-mm就可以了 想不到到了sql遇到各种麻烦
------其他解决方案--------------------select cast(YEAR('2012-1-1') as CHAR(4))+'-'+cast(MONTH('2012-1-1') as varchar(2))
------其他解决方案--------------------
如果類型是datetime/smalldatetime 的話是得到"2012-01" 的,除非你是自己手動輸入的"2012-1-1"
------其他解决方案--------------------
原来是这样,谢谢