`
panmingzhi0815
  • 浏览: 13250 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

SQL 日期格式

    博客分类:
  • sql
sql 
阅读更多

SQL 日期格式

2011-04-27 11:14:01
SqlServer日期(convert函数,getdate函数)
函数GETDATE()的返回值在显示时只显示到秒。实际上,SQL Sever内部时间可以精确到毫秒级(确切地说,可以精确到3.33毫秒)。 ..类型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
要得到不同格式的日期和时间,你需要使用函数CONVERT()。例如,当下面的这个语句执行时,显示的时间将包括毫秒:
SELECT CONVERT(VARCHAR(30),GETDATE(),9)
注意例子中数字9的使用。这个数字指明了在显示日期和时间时使用哪种日期和时间格式。当这个语句执行时,将显示如下的日期和时间:
简体中文OS:02   6 2007   4:33:56:530PM
英文OS:Nov 30 1997 3:29:55:170AM 
convert函数中的style参数提供了datetime或smalldatetime转换到char或varchar的多种日期显示格式。 Style的数字参数决定日期被如何显示。年可以被显示成两位数(yy),也可以显示成4位数(yyyy)。例如,将style参数赋值为100,可以得 到一个4位的年号,即包括世纪值(yyyy).
下表列出了style参数的可用值及可以使用的各种日期格式。当同smalldatetime类型一起使用style参数时,那些包括秒和毫秒的格式将在其位值显示零。
类型值          标准                                    输出    
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 + millisecondsR11;mon           dd yyyy hh:mi:ss:mmmAM(or )    
10              USA                                     mm-dd-yy    
11              JAPAN                                   yy/mm/dd    
12              ISO                                     yymmdd    
13              Europe                                  Default + millisecondsR11;dd mon yyyy     hh:mi:ss:mmm(24h)    
14              -                                       hh:mi:ss:mmm(24h)    
类型值前面加1,比如101 则显示 mm/dd/yyyy   





---------------------------------------------------------------------------------
有时侯在数据库的某些字段因特殊考虑的关系
这些字段是用char或nchar的格式来储存日期

如果希望将这些字段中转成一致的日期格式(如yyyy/mm/dd)
例如1988/1/1转成1988/01/01的话
请试着参考以下的语法…

SELECT CONVERT(varchar(10),CONVERT(datetime,employee_birthday,111),111)
FROM employee 


其它格式转换的范例如下: 
--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)




---------------------------------------------------------------------------------
如何用sql语言只获得数据库当前日期,且格式为"yyyy-mm-dd"?
select convert(char(10),getdate(),120)




---------------------------------------------------------------------------------
--字符转换为日期时,Style的使用

--1. Style=101时,表示日期字符串为:mm/dd/yyyy格式
SELECT CONVERT(datetime,'11/1/2003',101)
--结果:2003-11-01 00:00:00.000

--2. Style=101时,表示日期字符串为:dd/mm/yyyy格式
SELECT CONVERT(datetime,'11/1/2003',103)
--结果:2003-01-11 00:00:00.000


/*== 日期转换为字符串 ==*/
DECLARE @dt datetime
SET @dt='2003-1-11'

--1. Style=101时,表示将日期转换为:mm/dd/yyyy 格式
SELECT CONVERT(varchar,@dt,101)
--结果:01/11/2003

--2. Style=103时,表示将日期转换为:dd/mm/yyyy 格式
SELECT CONVERT(varchar,@dt,103)
--结果:11/01/2003


/*== 这是很多人经常犯的错误,对非日期型转换使用日期的style样式 ==*/
SELECT CONVERT(varchar,'2003-1-11',101)
--结果:2003-1-11

--1.
/*--说明
SET DATEFORMAT设置对使用CONVERT把字符型日期转换为日期的处理也具有影响
但不影响明确指定了style的CONVERT处理。
--*/

--示例 ,在下面的示例中,第一个CONVERT转换未指定style,转换的结果受SET DATAFORMAT的影响,第二个CONVERT转换指定了style,转换结果受style的影响。
--设置输入日期顺序为 日/月/年
SET DATEFORMAT DMY

--不指定Style参数的CONVERT转换将受到SET DATEFORMAT的影响
SELECT CONVERT(datetime,'2-1-2005')
--结果: 2005-01-02 00:00:00.000

--指定Style参数的CONVERT转换不受SET DATEFORMAT的影响
SELECT CONVERT(datetime,'2-1-2005',101)
--结果: 2005-02-01 00:00:00.000
GO

--2.
/*--说明

如果输入的日期包含了世纪部分,则对日期进行解释处理时
年份的解释不受SET DATEFORMAT设置的影响。
--*/

--示例,在下面的代码中,同样的SET DATEFORMAT设置,输入日期的世纪部分与不输入日期的世纪部分,解释的日期结果不同。
DECLARE @dt datetime

--设置SET DATEFORMAT为:月日年
SET DATEFORMAT MDY

--输入的日期中指定世纪部分
SET @dt='01-2002-03'
SELECT @dt
--结果: 2002-01-03 00:00:00.000

--输入的日期中不指定世纪部分
SET @dt='01-02-03'
SELECT @dt
--结果: 2003-01-02 00:00:00.000
GO

--3.
/*--说明

如果输入的日期不包含日期分隔符,那么SQL Server在对日期进行解释时
将忽略SET DATEFORMAT的设置。
--*/

--示例,在下面的代码中,不包含日期分隔符的字符日期,在不同的SET DATEFORMAT设置下,其解释的结果是一样的。
DECLARE @dt datetime

--设置SET DATEFORMAT为:月日年
SET DATEFORMAT MDY
SET @dt='010203'
SELECT @dt
--结果: 2001-02-03 00:00:00.000

--设置SET DATEFORMAT为:日月年
SET DATEFORMAT DMY
SET @dt='010203'
SELECT @dt
--结果: 2001-02-03 00:00:00.000

--输入的日期中包含日期分隔符
SET @dt='01-02-03'
SELECT @dt
--结果: 2003-02-01 00:00:00.000

--以下示例演示了在不同的语言环境(SET LANGUAGE)下,DATENAME与CONVERT函数的不同结果。
USE master

--设置会话的语言环境为: English
SET LANGUAGE N'English'
SELECT 
DATENAME(Month,GETDATE()) AS [Month],
DATENAME(Weekday,GETDATE()) AS [Weekday],
CONVERT(varchar,GETDATE(),109) AS [CONVERT]
/*--结果:
Month    Weekday   CONVERT
------------- -------------- -------------------------------
March    Tuesday   Mar 15 2005 8:59PM
--*/

--设置会话的语言环境为: 简体中文
SET LANGUAGE N'简体中文'
SELECT 
DATENAME(Month,GETDATE()) AS [Month],
DATENAME(Weekday,GETDATE()) AS [Weekday],
CONVERT(varchar,GETDATE(),109) AS [CONVERT]
/*--结果
Month    Weekday    CONVERT
------------- --------------- -----------------------------------------
05       星期四     05 19 2005 2:49:20:607PM
--*/
转至:http://www.douban.com/note/147748922/
分享到:
评论

相关推荐

    sql 日期格式的显示方式

    `smalldatetime`是SQL Server中的一种日期时间数据类型,它用来存储日期和时间信息,范围从1900年1月1日到2079年6月6日。该类型占用4个字节的存储空间,其中日期精确到天,时间则精确到分钟。由于其存储空间较小,...

    sql时间格式全

    #### 二、SQL日期时间格式转换 在SQL中,可以通过`CONVERT`函数来实现日期时间的格式转换。该函数接受三个参数: 1. **目标数据类型**:通常为`VARCHAR`或`CHAR`。 2. **表达式**:需要转换的日期时间值。 3. **...

    sql 日期格式化函数大全

    ### SQL 日期格式化函数大全 在SQL中,对日期进行格式化是非常常见的需求之一,尤其是在需要将日期数据展示给用户或与其他系统交互时。本文将详细介绍SQL Server中`CONVERT`函数的不同格式代码及其产生的效果,帮助...

    SQL日期格式转换[替换 GETDATE()]

    SQL日期格式转换,把字段替换 GETDATE()就可。 适合于各种效果。

    Sql日期时间格式转换

    ### SQL 日期时间格式转换详解 在SQL Server中,日期时间数据类型的格式转换是一项非常实用且经常被用到的功能。特别是在处理与日期时间相关的数据时,我们常常需要将日期时间值转换为不同的字符串格式以便更好地...

    sql时间格式转换大全

    本资源为 SQL 时间格式转换大全,提供了一个详细的日期时间格式转换指南。通过使用 CONVERT 函数和日期时间格式代码,可以轻松地将日期时间类型的字段转换为特定的日期时间格式,以满足不同的需求。

    sql日期格式化处理

    ### SQL 日期格式化处理详解 #### 一、概述 在数据库操作中,日期时间的格式化处理是一项常见的需求。合理的日期格式不仅有助于提高数据的可读性...希望本文能够帮助大家更好地理解和掌握SQL中的日期时间格式化技巧。

    sql时间格式.pdf

    SQL 时间格式 SQL Server 日期函数集合是对日期和时间进行操作的函数集合,本文将详细介绍这些函数的使用方法和实践应用。 1. 获取系统日期和时间值函数 获取系统日期和时间值函数用于获取当前的日期和时间。SQL ...

    SQL中日期格式转换

    在SQL中,日期和时间数据类型的格式...理解并熟练运用这些日期格式转换方法,可以让你在处理SQL日期和时间数据时更加得心应手,为用户提供更友好的日期时间显示。记得根据具体的应用场景和用户需求选择合适的日期格式。

    sql 日期时间转换大全

    `CONVERT`函数是SQL Server中用于转换日期时间格式的强大工具。它接受三个参数:目标数据类型、源表达式以及格式代码。其中格式代码决定了最终输出的格式。 **示例1**: 将当前日期时间转换为“YYYY-MM-DD HH:MI:SS...

    sql server日期格式转换方法大全

    在SQL Server中,日期和时间数据类型的处理是数据库操作中的常见任务。...理解并熟练掌握这些日期格式转换方法,将有助于在SQL Server环境中更高效地处理日期和时间数据,提高数据处理的灵活性和准确性。

    sql语句 截取时间 只显示 年,月,日的格式

    SQL Server 提供了多种时间格式,例如: * 100:mon dd yyyy hh:miAM/PM * 101:mm/dd/yyyy * 102:yyyy.mm.dd * 103:dd/mm/yyyy * 104:dd.mm.yyyy * 105:dd-mm-yyyy * 106:dd MMM yyyy * 107:Sep 12 2004 12:...

    csv-dbf-javaMail-javascript-oracle-svn-sql日期格式

    csv、dbf上传下载, javaMail邮件 javascript中的各种条件的1.文本框输入限制输入限制 oracle数据库连接 ...sql日期格式 这些都是 我长期奋战 时在网上找来的资料!现在我做了一下总结! 在上传上来供大家使用!

    SQL语句格式化工具

    - **批量处理**:能够处理整个文件夹或多个SQL脚本,节省大量手动格式化的时间。 2. **使用场景** - **代码审查**:在代码审查阶段,格式化工具可以帮助保持代码的一致性,减少因格式问题引发的讨论。 - **...

    sql时间按转换格式

    在SQL Server中,时间格式转换是一项非常实用的功能,它能够帮助我们按照...以上内容全面介绍了SQL Server中`CONVERT`函数可以实现的各种日期时间格式转换方法及其应用场景,希望能够帮助您更好地理解和掌握这一功能。

    SQL 时间格式化函数

    在SQL Server中,时间格式化是一项重要的功能,它允许数据库管理员和开发人员按照特定的格式显示日期和时间数据。本文将深入探讨SQL Server中的时间格式化函数,特别是`CONVERT`函数的使用。 `CONVERT`函数是SQL ...

    sql时间格式转换......

    `FORMAT`函数支持更多的格式字符串,使得输出的日期时间格式更加多样化。 **基本语法**: ```sql SELECT FORMAT(date_expression, format_string[, culture_name]) ``` - `date_expression`: 需要格式化的日期时间...

Global site tag (gtag.js) - Google Analytics