字符转换为日期时,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

sqlserver 日期与字符串之间的转换的更多相关文章

  1. 关于SQL Server 镜像数据库快照的创建及使用

    从SQL Server 2005 SP1 起,SQL 开始支持数据库镜像。它的设计目的是试图为SQL Server ......

  2. PostgreSQL LIKE 大小写实例

    PostgreSQL 数据库函数upper(“字符串”):转成大写字符串WHERE UPPER("User......

  3. sqlserver 日期与字符串之间的转换

    字符转换为日期时,Style的使用--1. Style=101时,表示日期字符串为:mm/dd/yyyy格式SELE......

  4. 如何通过SQL注入盗取数据库信息

    目录数据库结构注入示例判断共有多少字段判断字段的显示位置显示登录用户和数据库名查看所有数据库名查看数据库的所有表名查......

  5. sqlserver查询去掉重复数据的实现

    说明:只要数据表“列名”数据相同,则说明是两条重复的数据(ID为数据表的主键自动增长)。推荐使用方法一-- 方法一s......

  6. Navicat 导出sql文件和导入sql文件

    1.导出sql文件(1)选择需要导出数据库表,右击--->转储为sql文件---->结构和数据(2)会弹......

  7. SQLServer 使用rand获取随机数的操作

    Rand()函数是系统自带的获取随机数的函数,可以直接运行select rand() 获取0~1之间的float型的......

  8. PostgreSQL LIKE 大小写实例

    PostgreSQL 数据库函数upper(“字符串”):转成大写字符串WHERE UPPER("User......

  9. sqlserver 实现收缩数据库日志操作

    说明:收缩日志的原因有很多种,有些是考虑空间不足,有些则是应用程序限制导致的。--将“恢复模式”设置为“简单”ALT......

  10. sqlserver查询去掉重复数据的实现

    说明: 只要数据表“列名”数据相同,则说明是两条重复的数据(ID为数据表的主键自动增长)。推荐使用方法一-- 方法一......

随机推荐

  1. .NET并发编程-函数式编程

    本系列学习在.NET中的并发并行编程模式,实战技巧函数式编程和面向过程编程POP(procedure oriente......

  2. JS实现公告上线滚动效果

    本文实例为大家分享了JS实现公告上线滚动效果的具体代码,供大家参考,具体内容如下实现的效果如下,新闻公告上下滚动。代......

  3. c#生成缩略图代码

    public void SaveThumbnail(string path, string thumbnailPat......

  4. python常见题型

    语言特性1. 谈谈对 Python 和其他语言的区别2. 简述解释型和编译型编程语言3. Python 的解释器种类......

  5. 五分钟学会怎么用Pygame做一个简单的贪吃蛇

    Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础上开发。我们今天将利用它来制作......

  6. 详解如何在C#中使用投影(Projection)

    投影(Projection) 是一种可以将查询结果进行 塑性 的一种操作,你可以使用 投影 将一个 object 转......

  7. Python学习(4)( If 判断语句 、逻辑运算、elif、if嵌套、随机数、石头剪刀布程序)

    Python学习(4)一、python的 if 判断语句二、python的逻辑运算1. and2. or3. not......

  8. python中lower函数实现方法及用法讲解

    之前小编介绍过python中将字符串小写字符转为大写的upper函数的使用方法(upper函数)。有将小写转为大写的......

  9. 封装Vue Element的可编辑table表格组件

    前一段时间,有博友在我那篇封装Vue Element的table表格组件的博文下边留言说有没有那种“表格行内编辑”的......

  10. Java并发/多线程-CAS原理分析

    目录什么是CAS并发安全问题举一个典型的例子i++如何解决?底层原理CAS需要注意的问题使用限制ABA 问题概念解决......