十万火急 : 在SQL Server中怎样取得年月日,还望各位大虾们出出主意(50分)

  • 主题发起人 主题发起人 cy408
  • 开始时间 开始时间
C

cy408

Unregistered / Unconfirmed
GUEST, unregistred user!
我在SQL Server中用T-SQL写了一段程序,其中需到年月日,但我用GetDate()取出的是年月日
时分秒,请问大虾们,怎样在SQL Server中取得年月日,只需要年月日!而且取出的值是时间
类型,各们大虾,有劳了!!!! 特急,帮帮我!!!!!,
 
用GETDATE()获得日期后,在用CONVERT()转换。
CONVERT(SMALLDATETIME,GETDATE(),111)
 
可用DATENAME(datepart,date)返回代表指定日期(date)的指定日期部分(datepart)
的字符窜;
可用DATEPART(datepart,date)返回代表指定日期(date)的指定日期部分(datepart)
的整数;
不知可否满足你的要求?
 
SQL server 有函数可以取出年月日的,以前的贴子有讨论。
 
TSQFZY的做法是对的,看看sql7的帮助就觉得头昏啊,非要用这些111之类的代码来表示格式,如果没
有装帮助就死定的了。
1 101 USA mm/dd/yy
2 102 ANSI yy.mm.dd
3 103 British/French dd/mm/yy
4 104 German dd.mm.yy
5 105 Italian dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 or 109 (*) Default + milliseconds mon dd yyyy hh:mi:ss:mmmAM (or PM)
10 110 USA mm-dd-yy
11 111 JAPAN yy/mm/dd
12 112 ISO yymmdd
- 13 or 113 (*) Europe default + milliseconds dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 or 120 (*) ODBC canonical yyyy-mm-dd hh:mi:ss(24h)
- 21 or 121 (*) ODBC canonical (with milliseconds) yyyy-mm-dd hh:mi:ss.mmm(24h)
* The default values (style 0 or 100, 9 or 109, 13 or 113, 20 or 120, and 21 or 121) always return the century (yyyy).
 
select convert(char(30),getdate(),101)
select convert(char(30),getdate(),102)
select convert(char(30),getdate(),103)
select convert(char(30),getdate(),104)


result :
08/15/2000
(1 row(s) affected)

2000.08.15
(1 row(s) affected)

15/08/2000
(1 row(s) affected)




 
如果要用标准格式,可以用如下语句
select convert(varchar,datepart(year,getdate()))+'年'
+convert(varchar,datepart(month,getdate()))+'月'
+convert(varchar,datepart(day,getdate()))+'日'

可以不接受SQL SERVER 对洋人作的固定格式的鸟气。

 
用DATEPART吧,查查SQL SERVER帮助里有.
 
有几位大虾的答案基本上能满足要求,但有个很重要的问题是:我用CONVERT取出的如是
CHAR型则就能满足要求,若为SMALLDATETIME OR DATETIME类型,则转换出的一样有时分秒
但可以转换成YY-MM-DD 00:00:00 的格式,可是我只需要yy-mm-dd这种日期格式。
有劳各位大虾了。
 
该日期取出来后用于什么地方?
写出来看看如何采用其它解决方法
 
CY408:
在仔细看看Book OnLine, fa_ya 已经给出了方法, 而且是最有效的方法,
使用Convert转换,结果会因为机器的时间格式设置二不同, 使用DatePart,
得到的int类型,不会因为设置的不同而改变,
运行下段代码:

SELECT
convert(varchar, DATEPART(year, getdate())) + '-'
+ convert(varchar, DATEPART(month, getdate())) + '-'
+ convert(varchar, DATEPART(day, getdate()))
go

 
接受答案了!
 
接受答案了.
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部