sql server使用convert来取得datetime日期数据

sql server使用convert来取得datetime日期数据,以下实例包含各种日期格式的转换
语句及查询结果:
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-06
Select CONVERT(varchar(100),
GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12):
060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006
10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14):
10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16
10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16
10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47
AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select
CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100),
GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100),
GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(),
101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102):
2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select
CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select
CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select
CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select
CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select
CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100),
GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100),
GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111):
2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select
CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select
CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select
CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select
CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
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

说明:
使用 CONVERT:

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

参数
expression

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

data_type

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

nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。

style

日期格式样式,借以将 datetime 或 smalldatetime
数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将
float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或
nvarchar 数据类型)。

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

在表中,左侧的两列表示将 datetime 或 smalldatetime 转换为字符数据的 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* Hijri**** dd mon yyyy
hh:mi:ss:mmmAM
- 131* Hijri**** dd/mm/yy hh:mi:ss:mmmAM

* 默认值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始终返回世纪数位
(yyyy)。
** 当转换为 datetime时输入;当转换为字符数据时输出。
*** 专门用于 XML。对于从 datetime或
smalldatetime 到 character 数据的转换,输出格式如表中所示。对于从 float、money 或 smallmoney 到
character 数据的转换,输出等同于 style 2。对于从 real 到 character 数据的转换,输出等同于 style
1。
****Hijri 是具有几种变化形式的日历系统,Microsoft SQL Server 2000 使用其中的科威特算法。

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

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

时间: 2024-09-20 10:26:23

sql server使用convert来取得datetime日期数据的相关文章

jsp从sql server数据库中获得的dateTime类型的数据能否直接相减

问题描述 jsp从sql server数据库中获得的dateTime类型的数据能否直接相减 我想获得两个日期之间相差的天数,最好能精确到分,过路的大侠指点一下吧! 解决方案 java从数据库读到的是java.sql.Date,java.sql.Date继承于java.util.Date.java.util.Date有个方法getTime(),返回从格林威治时间1970年1月1日00:00:00到该Date对象的时间的毫秒数.你把两个Date对象的getTime()相减再除以(60×1000)就是

SQL Server 2005、2008 的 datetime 值范围(转)

SQL Server 2005.2008 的 datetime 最小值是:1753-01-01 00:00:00 最大值是:9999-12-31 23:59:59.997 这与 .NET 中的 DateTime.MinValue.DateTime.MaxValue 不匹配,与 System.Data.SqlTypes.SqlDateTime.MinValue.System.Data.SqlTypes.SqlDateTime.MaxValue 匹配. 其实 .NET 与 SQL Server 字段

从SQL Server数据库转到Oracle数据库的数据脚本处理

在我们很多情况下的开发,为了方便或者通用性的考虑,都首先考虑SQL Server数据库进行开发,但有时候客户的生产环境是Oracle或者其他数据库,那么我们就需要把对应的数据结构和数据脚本转换为对应的数据库,数据结构一般来说,语法都遵循了SQL92的标准,或者我们根据不同的PowerDesigner文件进行生成对应的结构脚本即可,但是实际数据的脚本我们就需要进行一定的处理,以及文本的替换处理了,本文结合Notepad++的文本正则表达式替换,实现一些如日期较为特殊的数据脚本调整,把它从SQL S

SQL Server实现显示每个类别最新更新数据的方法

本文实例讲述了SQL Server实现显示每个类别最新更新数据的方法.分享给大家供大家参考,具体如下: 在项目中经常遇到求每个类别最新显示的数据,比如显示某某某类别最新更新的5条数据.特写下这个sql记录于此: -- ============================================= -- 作者: <Rising_Sun> -- 创建日期: <2012-9-28> -- 描述: <显示每个类别下最新更新的n条数据> -- ============

SQL Server教程:三种导入导出数据使用方式比较

  在我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验.净化和转换时,将会面临很大的挑战.幸好SQL Server为我们提供了强大.丰富的数据导入导出功能,并且在导入导出的同时可以对数据进行灵活的处理. 在SQL Server中主要有三种方式导入导出数据:使用Transact-SQL对数据进行处理;调用命令行工具BCP处理数据;使用数据转换服务(DTS)对数据进行处理.这三种方法各有其特点,下面就它们的主要特点进行比较. 一.使用方式

sql server 2008如何根据一个表中数据去查询另一个表的数据?

问题描述 sql server 2008如何根据一个表中数据去查询另一个表的数据? 现在我有三个表,表A有11列,其中有一列用来记录员工的id,一列是记录类型的Id,现在我要查询出表A的所有数据,但同时我要通过员工的id去查询出表B的员工名,通过类型的id,去查询出表C中的类型详情,最后我要得到的数据就是表A中除了员工id和类型id的数据外的9列数据,加上表B的员工名和表C的类型详情,请问这样的SQL语句要如何写? 解决方案 用一个表的数据更新另一个表Sql ServerSQL server中将

在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题

原文:在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\KK.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 问题:消息 15281,级别 16,状态 1,第 1 行 SQL Server 阻止了对组件 'Ad Hoc Dis

SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型

原文:SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验. 3.熟悉或了解Microsoft SQL Server 2008中的空间数据类型. 4.具备相应(比如OGC)的GIS专业理论知识. 5.其他相关知识.   通过前面几篇文章介

SQL Server 2005中三种插入XML数据的方法

server|xml|插入|数据 我们知道SQL Server 2005中增加了XML类型,也就是说在创建表的时候可以指定某一列为XML类型,如:CREATE TABLE customers(  name VARCHAR(20) NOT NULL PRIMARY KEY,    description XML) 那么如何向XML类型的列中插入数据呢?基本上有三种办法:1.直接使用字符串,如INSERT INTO customers (feedName, feedXML) VALUES  ('Ra