sql2005中怎么指定输出格式,如getdate()为2011-05-26 10:44:20.217,想...

发布网友 发布时间:2022-04-23 08:41

我来回答

3个回答

热心网友 时间:2022-04-11 19:50

1,用convert函数。
SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm
例如:
select getdate()
2004-09-12 11:06:08.177

下面是3个用convert转换的例子
举例如下:
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608
select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12

附:sqlser提供的日期格式样式有:
1 101 美国 mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103 英国/法国 dd/mm/yy
4 104 德国 dd.mm.yy
5 105 意大利 dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10 110 美国 mm-dd-yy
11 111 日本 yy/mm/dd
12 112 ISO yymmdd
- 13 或 113 (*) 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]
- 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
- 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM
- 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM

2,如果你想要的格式不在SQLSERVER提供的样式之类,还可以通过自定义函数解决。
例如:
----------------创建函数-------------------------------

create FUNCTION turndate (@FrmStr varchar(50))
RETURNS varchar(10) AS
BEGIN
--格式一定会比源长
declare @DstStr varchar(50)
set @DstStr= convert(varchar(4),year(@FrmStr))+'-'+convert(varchar(2),month(@FrmStr))+'-'+convert(varchar(2),day(@FrmStr))
return @DstStr
END

-----------------------测试调用函数-------------------------------
select dbo. turndate('10.10.2012')

热心网友 时间:2022-04-11 21:08

getdate()产生的数据已经确定,可以用substr(getdate(),0,7)

热心网友 时间:2022-04-11 22:42

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com