SQL获取日期的所有格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL获取日期的所有格式相关的知识,希望对你有一定的参考价值。

在SQL Server里有个getdate()的函数是用来获取日期的,不过精确到秒,比如查询select getdate();

出来的结果为2009-02-26 15:57:35.357,一般用的比较多的是只获取日期,并不需要时间,这时候就需要用到convert函数了。

在函数CONVERT()中你可以使用许多种不同风格的日期和时间格式。下表显示了所有的格式。

日期和时间的类型:
类型值 标准 输出
0 Default mon dd yyyy hh:miAM
1 USA mm/dd/yy
2 ANSI yy.mm.dd
3 British/French dd/mm/yy
4 German dd.mm.yy
5 Italian dd-mm-yy
6 - dd mon yy
7 - mon dd,yy
8 - hh:mi:ss
9 Default + milliseconds--mon dd yyyy hh:mi:ss:mmmAM(or )
10 USA mm-dd-yy
11 JAPAN yy/mm/dd
12 ISO yymmdd
13 Europe Default + milliseconds--dd mon yyyy
hh:mi:ss:mmm(24h)
14 - hh:mi:ss:mmm(24h)

类型0,9,和13总是返回四位的年。对其它类型,要显示世纪,把style值加上100。类型13和14返回24小时时钟的时间。类型0,7,和13返回的月份用三位字符表示(用Nov代表November).

对表中所列的每一种格式,你可以把类型值加上100来显示有世纪的年(例如,00年将显示为2000年)。例如,要按日本标准显示日期,包括世纪,你应使用如下的语句:

SELECT CONVERT(VARCHAR(30),GETDATE(),111)

在这个例子中,函数CONVERT()把日期格式进行转换,显示为1997/11/30

方法:
select convert(varchar(8),getdate(),112)
--------
20090226

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

-----------

2009-02-26

补充:

1、这里的varchar(10),指的是获取的字符段的个数,比如原本是2009-02-26 15:57:35.357,为了只获取2009-02-26字段,算了下,一共10个字符,所以选择varchar(10),又比如为varchar(7),则为2009-02。

2、convert(varchar(10),getdate(),120)里的120是显示日期的格式。

用 replace('2007053019:10:00',':','');替换:号
参考技术A 格式是一个个转换的,不明白你的所有格式是啥意思
日期格式种类很多,各国习惯不一样
参考技术B YYYY/MM/DD
Select Convert(varchar(10),Getdate(),111)
--YYYYMMDD
Select Convert(varchar(10),Getdate(),112)
--HH:MM:SS
Select Convert(varchar(8),Getdate(),108)
--HH:MM:SS:mmm
Select Convert(varchar(12),Getdate(),114)
参考技术C http://hi.baidu.com/longsihanyuan/blog/item/0fda851b1093e5ffaf5133a4.html 参考技术D getDate()
然后你在转换

sql 时间格式转换

现在数据库table中某字段gettime为datetime类型.所有的数据都为:2008-4-4 9:53:29这种形式,我现在需要批量转换成2008-04-04 9:53:29这种形式...

在函数CONVERT()中你可以使用许多种不同风格的日期和时间格式。表11.1显示了所有的格式。

表11.1 日期和时间的类型
类型值 标准 输出
0 Default mon dd yyyy hh:miAM
1 USA mm/dd/yy
2 ANSI yy.mm.dd
3 British/French dd/mm/yy
4 German dd.mm.yy
5 Italian dd-mm-yy
6 - dd mon yy
7 - mon dd,yy
8 - hh:mi:ss
9 Default + milliseconds--mon dd yyyy
hh:mi:ss:mmmAM(or )
10 USA mm-dd-yy
11 JAPAN yy/mm/dd
12 ISO yymmdd
13 Europe Default + milliseconds--dd mon yyyy
hh:mi:ss:mmm(24h)
14 - hh:mi:ss:mmm(24h)

类型0,9,和13总是返回四位的年。对其它类型,要显示世纪,把style值加上100。类型13和14返回24小时时钟的时间。类型0,7,和13返回的月份用三位字符表示(用Nov代表November).

对表11.1中所列的每一种格式,你可以把类型值加上100来显示有世纪的年(例如,00年将显示为2000年)。例如,要按日本标准显示日期,包括世纪,你应使用如下的语句:

SELECT CONVERT(VARCHAR(30),GETDATE(),111)

在这个例子中,函数CONVERT()把日期格式进行转换,显示为1997/11/30
参考技术A select convert(char(19), gettime,120) as fmt
from table

如果你用SQLSERVER2000的查询分析器,请按F1,在弹出的帮助中搜索"convert",有相当详细的说明

以上是关于SQL获取日期的所有格式的主要内容,如果未能解决你的问题,请参考以下文章

sql server 获取指定格式的当前日期

基于日期获取所有日期 - sql

sqlserver获取当前日期条件查询

从 SQL Server 获取 8601 格式的日期时间

最近 24 小时的日期格式和获取结果表

sql获取日期格式