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
--*/

SQL 日期转换函数相关推荐

  1. PHP Mysql两组时间戳、日期转换函数

    PHP中日期的显示与存储有UNIX时间戳和格式化日期两种方式.Unix时间戳存储.处理方便,但是不直观:格式化日期直观,但是处理起来不如Unix时间戳那么自如.所以数据库中对于日期类型字段的存储采用时 ...

  2. sql 日期时间函数+格式转换

    <日期时间函数> (可参考下列表格) 转换函数 to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date('2004-11-27','yyyy-mm-dd') ...

  3. oracle日期转分钟,oracle日期转换函数

    与date操作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date(''2004-11-27'', ...

  4. sql server datetime格式_为什么你SQL Server中SQL日期转换出错了呢?

    开发人员有时候使用类似下面SQL将字符串转换为日期时间类型,乍一看,这样的SQL的写法是没有什么问题的.但是这样的SQL其实有时候就是一个定时炸弹,随时可能出现问题(隐藏的炸弹而已,只是等触发条件而已 ...

  5. hive中的日期转换函数

    1.unix时间戳转时间函数   语法: from_unixtime(bigintunixtime[, string format]) 返回值: string   说明: 转化UNIX时间戳(从197 ...

  6. oracle的日期时间转换日期,oracle 的时间日期转换函数

    http://hi.baidu.com/cuigq_hr/blog/item/ba2bc167ed79022eaa184c34.html 1.有sysdate转换后的日期的例子总结: select t ...

  7. mysql2000日期加减,SQL日期处理函数DATEADD和DATEDIFF详解

    SQL Server数据库中,DATETIME和SMALLDATETIME的值是存储为整数的.虽然如此,SQL Server数据库并不因此支持对这两种类型的值做数学运算. 不过,我们一定会有给日期或时 ...

  8. mysql日期转换函数 英文_mysql中字符串和时间互相转换的方法(自动转换及DATE_FORMAT函数)...

    一.mysql中字符串转换成日期 下面将讲述如何在MYSQL中把一个字符串转换成日期: 1.无需转换的: SELECT * FROM tairlist_day WHERE rq>'2010-07 ...

  9. oracle sql中月份加1,sql日期有关函数以及oracle日期有关函数

    sql日期函数 -- DATEADD -- 在向指定日期加上一段时间的基础上,返回新的 datetime 值. -- DATEADD ( datepart , number, date ) -- 日期 ...

最新文章

  1. CMake编译Widget UI Qt程序
  2. 重庆市推进组建区块链数字资产交易所
  3. 判断均匀平面波的极化形式_测瑞通|怎样判断电波暗室的性能?
  4. Vbox linux虚拟机桥接(VM操作也类似)
  5. Elasticsearch 使用copy_to组合字段进行查询
  6. 性能测试(05)-表达式和业务关联-json关联
  7. python之if经典语句_2. python学习之if条件语句
  8. java中立方根方法_java基础:4、java中Math类的常用方法?
  9. mysql 表与表之间的条件比对_值得收藏 | 一份最完整的MySQL规范
  10. linux语言的说明顺序有哪些,(linux常用头文件详解.doc
  11. python 程序运行在阿里云主机_阿里云主机Access key利用工具
  12. “Device eth0 does not seem to be present”解决办法
  13. KDevelop的使用(包括交叉编译)[原创]
  14. SizeOf相关代码
  15. [JSOI2008] 最小生成树计数
  16. PHP 实现简单购物车功能(2)
  17. ZigBee协议栈简介
  18. 【备忘录】UTM坐标系与经纬度转换 MATLAB C语言
  19. 毕向东Java笔记(全部)
  20. windows性能监视器API

热门文章

  1. 测试4年裸辞失业,面试17k的测试岗被按在地上摩擦,结局让我崩溃大哭...
  2. SpringBoot优雅整合RocketMQ
  3. 前端生成二维码qrcode.js,并下载
  4. # 免费短信测试服务-容联云使用
  5. 位、字节、字符的简介
  6. Java基础练习习题
  7. Python中flatten用法
  8. 2022年动力电池回收行业研究报告
  9. js之 实现浏览器下载图片保存到本地
  10. 盖塔机器人好_[转载]盖塔机器人的十大谜团