SQL取日期部分的方法

一.convert

convert(varchar(10),getdate(),120)   :  varchar(10) 截取位数可以调节,最多能显示19位(varchar(19))

  如:2009-12-12 10:10:10  ->  2009-12-12

不带世纪数位 (yy) (1)                带世纪数位 (yyyy)                标准                                  输入/输出 (3)               

-


0100 (1, 2)


默认


mon dd yyyy hh:miAM(或 PM)


1


101


美国


mm/dd/yyyy


2


102


ANSI


yy.mm.dd


3


103


英国/法国


dd/mm/yyyy


4


104


德国


dd.mm.yy


5


105


意大利


dd-mm-yy


6


106 (1)


-


dd mon yy


7


107 (1)


-


mon dd, yy


8


108


-


hh:mi:ss


-


9109 (1, 2)


默认设置 + 毫秒


mon dd yyyy hh:mi:ss:mmmAM(或 PM)


10


110


美国


mm-dd-yy


11


111


日本


yy/mm/dd


12


112


ISO


yymmdd

yyyymmdd


-


13113 (1, 2)


欧洲默认设置 + 毫秒


dd mon yyyy hh:mi:ss:mmm(24h)


14


114


-


hh:mi:ss:mmm(24h)


-


20120 (2)


ODBC 规范


yyyy-mm-dd hh:mi:ss(24h)


-


21121 (2)


ODBC 规范(带毫秒)


yyyy-mm-dd hh:mi:ss.mmm(24h)


-


126 (4)


ISO8601


yyyy-mm-ddThh:mi:ss.mmm(无空格)


-


127(6, 7)


带时区 Z 的 ISO8601。


yyyy-mm-ddThh:mi:ss.mmmZ

(无空格)


-


130 (1, 2)


回历 (5)


dd mon yyyy hh:mi:ss:mmmAM


-


131 (2)


回历 (5)


dd/mm/yy hh:mi:ss:mmmAM

1 这些样式值将返回不确定的结果。包括所有 (yy)(不带世纪数位)样式和一部分 (yyyy)(带世纪数位)样式。

2 默认值(style 010091091311320120 以及 21121)始终返回世纪数位 (yyyy)。

3 转换为 datetime 时输入;转换为字符数据时输出。

4 为用于 XML 而设计。对于从 datetimesmalldatetime 到字符数据的转换,其输出格式如上一个表所述。

5 回历是有多种变体的日历系统。SQL Server 使用科威特算法。

重要提示:
默认情况下,SQL Server 基于截止年份 2049 年来解释两位数的年份。换言之,就是将两位数的年份 49 解释为2049,将两位数的年份 50 解释为 1950。许多客户端应用程序(如基于自动化对象的应用程序)都使用截止年份 2030 年。SQLServer 提供了“两位数年份截止”配置选项,可通过此选项更改 SQL Server 使用的截止年份,从而对日期进行一致处理。建议您指定四位数年份。

6 仅支持从字符数据转换为 datetimesmalldatetime。仅表示日期或时间成分的字符数据转换为 datetimesmalldatetime 数据类型时,未指定的时间成分设置为 00:00:00.000,未指定的日期成分设置为 1900-01-01。

7使用可选的时间区域指示符 (Z) 更便于将具有时区信息的 XML datetime 值映射到没有时区的 SQL Server datetime 值。Z 是时区 UTC-0 的指示符。其他时区则以 + 或 - 方向的 HH:MM 偏移量来指示。例如:2006-12-12T23:45:12-08:00

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

二.DATEPART

返回代表指定日期的指定日期部分的整数。

语法

DATEPART ( datepart ,date )

参数

datepart

是指定应返回的日期部分的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。

日期部分 缩写
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw
Hour hh
minute mi, n
second ss, s
millisecond ms

week (wk, ww) 日期部分反映对 SET DATEFIRST 作的更改。任何一年的 1 月 1 日定义了 week 日期部分的开始数字,例如:DATEPART(wk, ‘Jan 1, xxxx‘) = 1,此处 xxxx 代表任一年。

weekday (dw) 日期部分返回对应于星期中的某天的数,例如:Sunday = 1、Saturday = 7。weekday 日期部分产生的数取决于 SET DATEFIRST 设定的值,此命令设定星期中的第一天。

date

是返回 datetimesmalldatetime 值或日期格式字符串的表达式。对 1753 年 1 月 1 日之后的日期用datetime 数据类型。更早的日期存储为字符数据。当输入 datetime 值时,始终将其放入引号中。因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。

如果只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049 (默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。

时间: 2024-11-06 03:36:27

SQL取日期部分的方法的相关文章

Android学习笔记之SQLite数据库的使用及常用的增删改查方法、无sql语句的DRUD方法汇总

(1)目录结构如下: (2)链接数据库的文件:DBHelper.java要继承SQLiteOpenHelper类 package com.lc.sqlite_demo1.db; import android.content.Context; import android.database.DatabaseErrorHandler; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLit

bug统计分析续(一)基于SQL的Bug统计方法

上一篇为 bug统计分析初步 本篇重点讨论基于sql的bug统计分析方法. 1.与时间和状态的关系: 1)考察每个时间单位(年.月.日)产生的bug量 2)考察每个时间单位(年.月.日)解决的bug量 3)考察每个时间单位(年.月.日)遗留的bug量 4)考察每个bug遗留的时间单位(年.月.日) 5)考察平均bug遗留的时间单位(年.月.日) 6)通过结合1).2).3)考察分析发现.解决bug的时间段(月.日.时)峰值 其中6可以用来指导测试.开发效率 2.与时间.角色的关系: 1)考察每个

SQL Server Profiler使用方法

一.SQL Server Profiler使用方法 1.单击开始--程序--Microsoft SQL Server 2005--性能工具--SQL Server Profiler,如下图: 2.弹出Sql server Profiler窗口,如下图: 3.在工作窗口内,鼠标单击“文件---[新建跟踪(N)...]”,弹出数据库连接对话窗口,在对话窗口内输入跟踪的数据库服务器名称.用户名和密码等信息,如下图: 4.输入完成后,单击连接按钮,弹出跟踪属性窗口,窗口中左边的“常规”选项卡是一个基本设

导出SQL运行结果的方法总结

本文通过几个例子,介绍了几种下载MaxCompute SQL计算结果的方法.为了减少篇幅,所有的SDK部分都只举例介绍Java的例子. SQLTask SQLTask是SDK直接调用MaxCompute SQL的接口,能很方便得运行SQL并获得其返回结果.从文档可以看到,SQLTask.getResult(i); 返回的是一个List.用户可以循环迭代这个List,获得完整的SQL计算返回结果.不过这个方法有个缺陷,可以参考这里这里提到的SetProject READ_TABLE_MAX_ROW

sql常用的星期方法

sql常用的星期方法: SELECT convert(varchar(10),DATEADD(wk, DATEDIFF(wk,0,getdate()), 0),120) --本周开始周一SELECT convert(varchar(10),DATEADD(wk, DATEDIFF(wk,5,getdate()), 6),120) --本周结束周五select datename(week,getdate()) --本年的第几周 可以不用convert,这边是为了做比较数字,取时间段,所以都转化为字

远程连接sql server 数据库的方法

今天找了半天,终于解决了如何从本地连接到远程sql server服务器的方法. 1.首先确保打开远程服务器的sql server配置管理器,确保TCP/IP协议开启 2.WebConfig的连接字符格式 <add name="SQLConnectionString" connectionString="Data Source=10.10.78.180,1433;Initial Catalog=db_Blog;User ID=sa;Password=123456;Pack

扩展Exception,增加判断Exception是否为SQL引用约束异常方法!

在设计数据表时,如果将某些列设置为关联其它表的外键,那么如果对其进行增加.修改操作时,其关联表若没有相匹配的记录则报错,或者在对其关联表进行删除时,也会报错,这就是外键约束的作用,当然除了外键还有许多约束,在此暂不讨论,本篇文章主要讲的是,如何判断是否为SQL的引用约束异常,从而能够更好的将SQL复杂的报错转换为用户能够明白的友好提示. 扩展Exception,增加判断Exception是否为SQL引用约束异常方法(IsSqlReferenceConstraintException): publ

删除SQL注入的一些方法总结

sql替换法: declare @myStr nvarchar(500); set @myStr='oa_20121026new.bak</title><style>.alx2{position:absolute;clip:rect(456px,auto,auto,456px);}</style><'; select replace(@myStr,substring(@myStr,charindex('<',@myStr),len(@myStr)),'');

SQL查询语句优化方法

以下是网上流传比较广泛的30种SQL查询语句优化方法: 应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查