原文链接:http://www.cnblogs.com/weiqt/articles/1826847.html

SQL Server中使用convert进行日期转换

一般存入数据库中的时间格式为yyyy-mm-ddhh:mm:ss 如果要转换为yyyy-mm-dd  短日期格式.可以使用convert函数.下面是sqlserver帮助中关于convert函数的声明:

使用 CONVERT:

CONVERT (data_type[(length)],expression[,style])

参数

expression

是任何有效的 Microsoft® SQL Server™ 表达式。
data_type

目标系统所提供的数据类型,包括bigintsql_variant。不能使用用户定义的数据类型。

length

ncharnvarcharcharvarcharbinaryvarbinary数据类型的可选参数。

style

日期格式样式,借以将datetimesmalldatetime数据转换为字符数据(ncharnvarcharcharvarcharncharnvarchar数据类型);或者字符串格式样式,借以将floatrealmoneysmallmoney数据转换为字符数据(ncharnvarcharcharvarcharncharnvarchar数据类型)。

SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。

在表中,左侧的两列表示将datetimesmalldatetime转换为字符数据的style值。给style值加 100,可获得包括世纪数位的四位年份 (yyyy)。

不带世纪数位 (yy) 带世纪数位 (yyyy) 标准 输入/输出**
- 0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM)
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

*    默认值(style0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始终返回世纪数位 (yyyy)。
** 当转换为datetime时输入;当转换为字符数据时输出。
*** 专门用于 XML。对于从datetimesmalldatetimecharacter数据的转换,输出格式如表中所示。对于从floatmoneysmallmoneycharacter数据的转换,输出等同于style2。对于从realcharacter数据的转换,输出等同于style1。

重要  默认情况
下,SQL Server 根据截止年份 2049 解释两位数字的年份。即,两位数字的年份 49 被解释为 2049,而两位数字的年份 50
被解释为 1950。许多客户端应用程序(例如那些基于 OLE 自动化对象的客户端应用程序)都使用 2030 作为截止年份。SQL Server
提供一个配置选项("两位数字的截止年份"),借以更改 SQL Server
所使用的截止年份并对日期进行一致性处理。然而最安全的办法是指定四位数字年份。

当从smalldatetime转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。当从datetimesmalldatetime值进行转换时,可以通过使用适当的charvarchar数据类型长度来截断不需要的日期部分。

=========================================================================

如果只要取yyyy-mm-dd格式时间, 就可以用 convert(nvarchar(10),field,120)
120 是格式代码,  nvarchar(10) 是指取出前10位字符.

语句及查询结果:
SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
SELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06
SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16
SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06
SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06
SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-06
SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 06
SELECT CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
SELECT CONVERT(varchar(100), GETDATE(), 8): 10:57:46
SELECT CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
SELECT CONVERT(varchar(100), GETDATE(), 10): 05-16-06SELECT CONVERT(varchar(100), GETDATE(), 11): 06/05/16SELECT CONVERT(varchar(100), GETDATE(), 12): 060516SELECT CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937SELECT CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967SELECT CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47SELECT CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157SELECT CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AMSELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47SELECT CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250SELECT CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AMSELECT CONVERT(varchar(100), GETDATE(), 101): 05/16/2006SELECT CONVERT(varchar(100), GETDATE(), 102): 2006.05.16SELECT CONVERT(varchar(100), GETDATE(), 103): 16/05/2006SELECT CONVERT(varchar(100), GETDATE(), 104): 16.05.2006SELECT CONVERT(varchar(100), GETDATE(), 105): 16-05-2006SELECT CONVERT(varchar(100), GETDATE(), 106): 16 05 2006SELECT CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006SELECT CONVERT(varchar(100), GETDATE(), 108): 10:57:49SELECT CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AMSELECT CONVERT(varchar(100), GETDATE(), 110): 05-16-2006SELECT CONVERT(varchar(100), GETDATE(), 111): 2006/05/16SELECT CONVERT(varchar(100), GETDATE(), 112): 20060516SELECT CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513SELECT CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547SELECT CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49SELECT CONVERT(varchar(100), GETDATE(), 121): 2006

Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827

Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM

Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

(转)SQL Server中使用convert进行日期转换的更多相关文章

  1. SQL Server中使用convert进行日期转换

    使用 CONVERT: CONVERT (data_type[(length)],expression[,style]) 参数 expression 是任何有效的 Microsoft® SQL Ser ...

  2. SQL Server中使用convert进行日期转换(转载)

    一般存入数据库中的时间格式为yyyy-mm-dd hh:mm:ss 如果要转换为yyyy-mm-dd  短日期格式.可以使用convert函数.下面是sqlserver帮助中关于convert函数的声 ...

  3. SQL Server中一些有用的日期sql语句

    SQL Server中一些有用的日期sql语句 1.一个月第一天的 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一 SELECT DA ...

  4. 【SQL Server】MS SQL Server中的CONVERT日期格式化大全

    CONVERT 函数将某种数据类型的表达式显式转换为另一种数据类型.SQL Server中 将日期格式化. SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式. 在表中,左侧的两列表示将 ...

  5. SQL Server中提前找到隐式转换提升性能的办法

        http://www.cnblogs.com/shanksgao/p/4254942.html 高兄这篇文章很好的谈论了由于数据隐式转换造成执行计划不准确,从而造成了死锁.那如果在事情出现之前 ...

  6. MS SQL Server中的CONVERT日期格式化大全

    CONVERT 将某种数据类型的表达式显式转换为另一种数据类型.由于某些需求经常用到取日期格式的不同. 现以下可在SQL Server中将日期格式化. SQL Server 支持使用科威特算法的阿拉伯 ...

  7. SQL Server 中使用 convert 转换 datetime 格式示例

    Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE() ...

  8. sql server中的日期详解使用(convert)

    转自:http://blog.csdn.net/hehe520347/article/details/48496853 有个字段值例如2012-07-02 00:00:00.000 转化成 2012- ...

  9. Sql Server 中一个非常强大的日期格式化函数

    Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0)-- 05 16 2006 10:57AMSelect CONV ...

随机推荐

  1. 【MySQL】SQL语法,between and 使用注意事项

    业务代码中有条查询学生姓名的sql: select stu_name from stu_info where stu_id between id_1 and id_2; 估计当时一时恍惚,拼接sql时 ...

  2. WPF会重写Windows GUI的历史吗?

    原文地址:http://tech.it168.com/zx/2007-09-15/200709141320653.shtml 你可能对微软的.NET框架3.0版本的最近的一次更新感到有点奇怪.主版本指 ...

  3. lpad rpad

    Lpad()函数的用法:lpad函数将左边的字符串填充一些特定的字符其语法格式如下:         lpad(string,n,[pad_string])     string:可是字符或者参数   ...

  4. BZOJ 1014 火星人prefix

    Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀.比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 7 ...

  5. 《STL源码剖析》环境配置

    首先,去侯捷网站下载相关文档:http://jjhou.boolan.com/jjwbooks-tass.htm. 这本书采用的是Cygnus C++ 2.91 for windows.下载地址:ht ...

  6. java学习之语句结构

    在java语言当中存在4中语句结构,分别是: 1.顺序结构 2.判断结构 3.选择结构 4.循环结构 一.顺序结构: 所谓的顺序结构,也就是当不指定其他三种语句结构的情况下,语句是从上往下依次执行的, ...

  7. COJ 0967 WZJ的数据结构(负三十三)

    WZJ的数据结构(负三十三) 难度级别:E: 运行时间限制:7000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 请你设计一个数据结构,完成以下功能: 给定一个大 ...

  8. 【转】 为SeekBar滑块设置固定值以及自定义Seekbar,progressbar样式--不错

    原文网址:http://blog.csdn.net/jdsjlzx/article/details/7804080 最近在项目中使用到了seekbar和progressbar,且必须按照设计要求来进行 ...

  9. uboot从SD卡烧写内核和文件系统

    环境:ubuntu 13.04一.首先制作sd启动盘: 插入SD卡    sudo dd iflag=dsync oflag=dsync if=tiny210v2-uboot.binof=/dev/m ...

  10. 网络流(最大流) HDU 1565 方格取数(1) HDU 1569 方格取数(2)

      HDU 1565 方格取数(1) 给你一个n*n的格子的棋盘,每个格子里面有一个非负数.从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的 ...