一般存入数据库中的时间格式为yyyy-mm-dd hh: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(NVARCHAR(100), GETDATE(), 0)-- 05 16 2006 10--57AM
SELECT CONVERT(NVARCHAR(100), GETDATE(), 1)-- 05/16/06
SELECT CONVERT(NVARCHAR(100), GETDATE(), 2)-- 06.05.16
SELECT CONVERT(NVARCHAR(100), GETDATE(), 3)-- 16/05/06
SELECT CONVERT(NVARCHAR(100), GETDATE(), 4)-- 16.05.06
SELECT CONVERT(NVARCHAR(100), GETDATE(), 5)-- 16-05-06
SELECT CONVERT(NVARCHAR(100), GETDATE(), 6)-- 16 05 06
SELECT CONVERT(NVARCHAR(100), GETDATE(), 7)-- 05 16, 06
SELECT CONVERT(NVARCHAR(100), GETDATE(), 8)-- 10--57--46
SELECT CONVERT(NVARCHAR(100), GETDATE(), 9)-- 05 16 2006 10--57--46--827AM
SELECT CONVERT(NVARCHAR(100), GETDATE(), 10)-- 05-16-06
SELECT CONVERT(NVARCHAR(100), GETDATE(), 11)-- 06/05/16
SELECT CONVERT(NVARCHAR(100), GETDATE(), 12)--
SELECT CONVERT(NVARCHAR(100), GETDATE(), 13)-- 16 05 2006 10--57--46--937
SELECT CONVERT(NVARCHAR(100), GETDATE(), 14)-- 10--57--46--967
SELECT CONVERT(NVARCHAR(100), GETDATE(), 20)-- 2006-05-16 10--57--47
SELECT CONVERT(NVARCHAR(100), GETDATE(), 21)-- 2006-05-16 10--57--47.157
SELECT CONVERT(NVARCHAR(100), GETDATE(), 22)-- 05/16/06 10--57--47 AM
SELECT CONVERT(NVARCHAR(100), GETDATE(), 23)-- 2006-05-16
SELECT CONVERT(NVARCHAR(100), GETDATE(), 24)-- 10--57--47
SELECT CONVERT(NVARCHAR(100), GETDATE(), 25)-- 2006-05-16 10--57--47.250
SELECT CONVERT(NVARCHAR(100), GETDATE(), 100)-- 05 16 2006 10--57AM
SELECT CONVERT(NVARCHAR(100), GETDATE(), 101)-- 05/16/2006
SELECT CONVERT(NVARCHAR(100), GETDATE(), 102)-- 2006.05.16
SELECT CONVERT(NVARCHAR(100), GETDATE(), 103)-- 16/05/2006
SELECT CONVERT(NVARCHAR(100), GETDATE(), 104)-- 16.05.2006
SELECT CONVERT(NVARCHAR(100), GETDATE(), 105)-- 16-05-2006
SELECT CONVERT(NVARCHAR(100), GETDATE(), 106)-- 16 05 2006
SELECT CONVERT(NVARCHAR(100), GETDATE(), 107)-- 05 16, 2006
SELECT CONVERT(NVARCHAR(100), GETDATE(), 108)-- 10--57--49
SELECT CONVERT(NVARCHAR(100), GETDATE(), 109)-- 05 16 2006 10--57--49--437AM
SELECT CONVERT(NVARCHAR(100), GETDATE(), 110)-- 05-16-2006
SELECT CONVERT(NVARCHAR(100), GETDATE(), 111)-- 2006/05/16
SELECT CONVERT(NVARCHAR(100), GETDATE(), 112)--
SELECT CONVERT(NVARCHAR(100), GETDATE(), 113)-- 16 05 2006 10--57--49--513
SELECT CONVERT(NVARCHAR(100), GETDATE(), 114)-- 10--57--49--547
SELECT CONVERT(NVARCHAR(100), GETDATE(), 120)-- 2006-05-16 10--57--49
SELECT CONVERT(NVARCHAR(100), GETDATE(), 121)--
SELECT CONVERT(NVARCHAR(100), GETDATE(), 126)-- 2006-05-16T10--57--49.827
SELECT CONVERT(NVARCHAR(100), GETDATE(), 130)-- 18 ???? ?????? 1427 10--57--49--907AM
SELECT CONVERT(NVARCHAR(100), GETDATE(), 131)-- 18/04/1427 10--57--49--920AM

字符串到日期的语句及查询结果:

DECLARE @stringDate NVARCHAR(20)=N'30/05/2018'
SELECT CONVERT(DATETIME,@stringDate,103) --2018-05-30 00:00:00.000 SET @stringDate=N'05/30/2018'
SELECT CONVERT(DATETIME,@stringDate,101) --2018-05-30 00:00:00.000

带时、分、秒、毫秒的字符串到日期的语句及查询结果:

DECLARE @stringDate NVARCHAR(100)=N'30/05/2018 13:23:32.053'
SELECT CONVERT(DATETIME,@stringDate,103) --2018-05-30 13:23:32.053 SET @stringDate=N'05/30/2018 13:23:32.053'
SELECT CONVERT(DATETIME,@stringDate,101) --2018-05-30 13:23:32.053

原文链接

 
 

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

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

    原文链接:http://www.cnblogs.com/weiqt/articles/1826847.html SQL Server中使用convert进行日期转换 一般存入数据库中的时间格式为yyy ...

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

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

  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. sql server中quotename()函数的用法(转载)

    操作sql server尤其是写存储过程时,要用到各种各样的函数,今天就总结一个quotename()的用法.1.语法: quotename('character_string'[,'quote_ch ...

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

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

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

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

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

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

随机推荐

  1. 2017-10-10 都市传说: "部分"中文出现乱码

    知乎原链, 作者亦本人 事情起源于项目另一开发者在中文Windows下构建时遇到的部分中文出现乱码问题. 当时很不解的是, 为什么会只有部分出现乱码. 第一感觉是, 如果编码转换不正确, 要么全乱码, ...

  2. 【图解】Web前端实现类似Excel的电子表格

    本文将通过图解的方式,使用纯前端表格控件 SpreadJS 来一步一步实现在线的电子表格产品(例如可构建Office 365 Excel产品.Google的在线SpreadSheet). 工具简介: ...

  3. Android开发专业名词及工具概述

    前言: 系统的学习下Android开发中涉及到的一些专业名词 和Android开发工具 名词: 一.SDK(Software Development Kit) 软件开发工具包:一般都是一些软件工程师为 ...

  4. Android spinner默认样式不支持换行和修改字体样式的解决方法

    在spinner中显示的数据过多,需要换行,而Android自身提供的android.R.layout.simple_spinner_dropdown_item样式不支持换行,因此参考android提 ...

  5. Java:[面向对象:继承,多态]

    本文内容: 继承 多态 首发时期:2018-03-23 继承: 介绍: 如果多个类中存在相同的属性和行为,可以将这些内容抽取到单独一个类中,那么多个类(子类)无需再定义这些属性和行为,只要继承那个类( ...

  6. LeetCode题解之Balanced Binary Tree

    1.题目描述 2.问题分析 DFS. 3.代码 bool isBalanced(TreeNode* root) { if (root == NULL) return true; && ...

  7. Anaconda3 错误集合

    1. An error ocurred while starting the kernel 答:个人猜测有可能是配置文件出现问题,于是采用如下解决方法: 在终端中输入spyder --reset,重置 ...

  8. [VMWARE] [CENTOS7] 安装VMware-Tools

    安装VM-Tools 先使用yum install 安装Perl与net-tools# sudo yum install net-tools# sudo yum install perl 加载CDRO ...

  9. SQL去除空格、截取数据的方法:trim、substring

    1.如device表中的identity字段正常的字段长度是32位,但是某些不正常的数据,后面多出空格,需要去掉后面的空格,可执行以下命令: ; ; 2.使用substring函数截取某字段的的其中一 ...

  10. 项目 插件 -下载- 使用,jar包-下载

    插件 -下载- 使用 BootCDN前端开源项目https://www.bootcdn.cn/all/ bootstrap:HTML.CSS 和 JS 框架    插件https://v3.bootc ...