首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请教怎么返回一个日期的"年-月"部分,不要日

2012-12-16 
请问如何返回一个日期的年-月部分,不要日比如现有日期2012-11-06,想要得到2012-11应该怎么做呢?sql2000

请问如何返回一个日期的"年-月"部分,不要日
比如现有日期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 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))

[其他解释]
引用:
只能通过这种对字符串的截取来达到目的吗?有没有直接的方式呢?
按照上面的方法,如果源日期是"2012-1-1"则得到的结果是"2012-1-"

如果類型是datetime/smalldatetime 的話是得到"2012-01" 的,除非你是自己手動輸入的"2012-1-1"
[其他解释]
引用:
引用:只能通过这种对字符串的截取来达到目的吗?有没有直接的方式呢?
按照上面的方法,如果源日期是"2012-1-1"则得到的结果是"2012-1-"
如果類型是datetime/smalldatetime 的話是得到"2012-01" 的,除非你是自己手動輸入的"2012-1-1"


原来是这样,谢谢

热点排行