• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

一个简单的日期问题?

joling123 2008-04-10 01:57:15
栏位的日期是 2008-10-10 这样的格式,但我想以年月为条件的查询应怎么设?如 只想要 2008-2 这样不要日的。谢谢! where Tdate='2008-2' ????? 谢谢!
...全文
66 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
y_dong119 2008-04-10

SQL code

select replace(convert(char(7),getdate(),120),'-0','-') /* ----------- 2008-4 */

这个最牛b,确实简单..............

回复
conan304 2008-04-10
[Quote=引用 8 楼 happyflystone 的回复:]
这个简单不?



SQL codeselect replace(convert(char(7),getdate(),120),'-0','-')
/*
-----------
2008-4
*/
[/Quote]
Good.
回复
-狙击手- 2008-04-10
这个简单不?



select replace(convert(char(7),getdate(),120),'-0','-')
/*
-----------
2008-4
*/
回复
conan304 2008-04-10
--栏位的日期是 2008-10-10 这样的格式,但我想以年月为条件的查询应怎么设?
--如 只想要 2008-2 这样不要日的。谢谢! where Tdate='2008-2' ????? 谢谢!


select convert(char(7),getdate(),120)

select cast(year(getdate()) as char(4))+'-'+cast(month(getdate()) as varchar(2))

/*
-------
2008-04

(所影响的行数为 1 行)


-------
2008-4

(所影响的行数为 1 行)
*/
回复
iou1220 2008-04-10
declare @t table(AA datetime,BB char(1))
insert @t select '2008-01-03','C'
union all select '2008-02-03 02:03:55','B'
union all select '2008-03-03 02:03:55','A'
union all select '2008-01-03 02:03:55','C'
union all select '2008-02-03 02:03:55','B'
union all select '2008-03-03 02:03:55','A'


select t1.* from (
select *,SUBSTRING(CONVERT(varchar(10),AA, 20), 1, 4)+
SUBSTRING(CONVERT(varchar(10),AA, 20), 6, 2) as CC
from @t
) t1 where CC='200803'


结果:
AA BB CC
--------------------------------------
2008-03-03 02:03:55.000 A 200803
2008-03-03 02:03:55.000 A 200803

回复
ojuju10 2008-04-10

或者

select * from tab
where datediff(mm,Tdate,'2008-02')=0

回复
ojuju10 2008-04-10

select * from tab
where convert(varchar(7),Tdate,120)='2008-02'
回复
wzy_love_sly 2008-04-10
单月要2位 如'09','12'
回复
wzy_love_sly 2008-04-10
convert (varchar(7),tdate,120)='2008-02'
回复
bqb 2008-04-10
select convert(char(7),getdate(),120)

---------
2008-04
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-04-10 01:57
社区公告
暂无公告