您的位置:程序门 -> ms-sql server -> 基础类



日期格式的最高效转换


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


日期格式的最高效转换[已结贴,结贴人:btut2004]
发表于:2007-04-17 15:32:16 楼主
一个日期字段,我现在要取得

年-月-日

一般的日期转换方法是这样的
convert(varchar,dateandtime,112)


但是结果不是我要的那种形式,如何写出最高效的方式来达到我的需要呢

注:可不要用left哦,因为你不能保证正确。
发表于:2007-04-17 15:34:131楼 得分:0
select   convert(varchar(10),dateandtime,120)
楼主是想把 '- '变成汉字是吗?
发表于:2007-04-17 15:34:292楼 得分:5
convert(varchar(10),dateandtime,120)
发表于:2007-04-17 15:35:543楼 得分:0
变成汉字是吗?

select   left(convert(varchar(10),dateandtime,120),4)   +   '年 '   +
              substring(convert(varchar(10),dateandtime,120),6,2)   +   '月 '   +  
              substring(convert(varchar(10),dateandtime,120),9,2)   +   '日 '
from   tb
发表于:2007-04-17 15:36:534楼 得分:0
不是啊,我说要
2007-04-17这种形式
发表于:2007-04-17 15:37:325楼 得分:0
哦,等等。我想想
发表于:2007-04-17 15:38:166楼 得分:0
select   rtrim(year(dateandtime))+ '年 '+rtrim(month(dateandtime))+ '月 '+rtrim(day(dateandtime))
发表于:2007-04-17 15:38:177楼 得分:0
说错了,是要
2007-04这种形式。

就是只要年和月,嘿嘿
发表于:2007-04-17 15:38:498楼 得分:5
select  
stuff(stuff(convert(varchar(10),dateandtime,120),charindex( '- ',convert(varchar(10),dateandtime,120)),1, '年 '),
charindex( '- ',stuff(convert(varchar(10),dateandtime,120),charindex( '- ',convert(varchar(10),dateandtime,120)),1, '年 ')),1, '月 ')+ '日 '
发表于:2007-04-17 15:38:559楼 得分:0
btut2004(养鱼炒股)   (   )   信誉:100         blog       加为好友     2007-04-17   15:36:53     得分:   0    
 
 
      不是啊,我说要
2007-04-17这种形式
   
------------------------------------
select   convert(char(10),getdate(),120)
发表于:2007-04-17 15:39:2110楼 得分:5
select   convert(char(7),getdate(),120)
发表于:2007-04-17 15:39:2111楼 得分:0
convert(varchar(07),[date],120)就可以了
发表于:2007-04-17 15:39:4312楼 得分:0
btut2004(养鱼炒股)   (   )   信誉:100         blog       加为好友     2007-04-17   15:38:17     得分:   0    
 
 
      说错了,是要
2007-04这种形式。

就是只要年和月,嘿嘿
   
----------------------------------
select   convert(char(7),getdate(),120)
发表于:2007-04-17 15:39:4713楼 得分:0
--try
select   convert(varchar(7),getdate(),120)
发表于:2007-04-17 15:39:5114楼 得分:0
说错了,是要
2007-04这种形式。

就是只要年和月,嘿嘿

select   convert(varchar(7),dateandtime,120)   from   tb

2007-04-01这种形式。
select   convert(varchar(10),dateandtime,120)   from   tb
发表于:2007-04-17 15:40:1315楼 得分:0
是啊,我开始说错了,只要年和月,而且4月这样的月份前面要有0

实现起来不难,主要是最高效才行。
发表于:2007-04-17 15:40:1916楼 得分:5
lz查查convert的用法,
112,120,108等,轉換出來不同的結果
发表于:2007-04-17 15:41:1517楼 得分:0
select   convert(varchar(7),getdate(),120)


is   good!
发表于:2007-04-17 15:44:3918楼 得分:0

select   convert(char(7),getdate(),120)
-------  
2007-04

(所影响的行数为   1   行)
发表于:2007-04-18 15:09:2919楼 得分:0
取day   month   year组合,很灵活


快速检索

最新资讯
热门点击