出自:
http://www.cnblogs.com/Bowen80/archive/2008/04/11/1147688.html
1、日期格式化处理
DECLARE @dt datetime
SET @dt=GETDATE()
--1.短日期格式:yyyy-m-d
SELECT REPLACE(CONVERT(varchar(10),@dt,120),N'-0','-')
--2.长日期格式:yyyy年mm月dd日
--A. 方法1
SELECT STUFF(STUFF(CONVERT(char(8),@dt,112),5,0,N'年'),8,0,N'月')+N'日'
--B. 方法2
SELECT DATENAME(Year,@dt)+N'年'+DATENAME(Month,@dt)+N'月'+DATENAME(Day,@dt)+N'日'
--3.长日期格式:yyyy年m月d日
SELECT DATENAME(Year,@dt)+N'年'+CAST(DATEPART(Month,@dt) AS varchar)+N'月'+DATENAME(Day,@dt)+N'日'
--4.完整日期+时间格式:yyyy-mm-dd hh:mi:ss:mmm
SELECT CONVERT(char(11),@dt,120)+CONVERT(char(12),@dt,114)
2、日期推算处理
DECLARE @dt datetime
SET @dt=GETDATE()
DECLARE @number int
SET @number=3
--1.指定日期该年的第一天或最后一天
--A. 年的第一天
SELECT CONVERT(char(5),@dt,120)+'1-1'
--B. 年的最后一天
SELECT CONVERT(char(5),@dt,120)+'12-31'
--2.指定日期所在季度的第一天或最后一天
--A. 季度的第一天
SELECT CONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt)-2,
@dt),
120)+'1')
--B. 季度的最后一天(CASE判断法)
SELECT CONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)
+CASE WHEN DATEPART(Quarter,@dt) in(1,4)
THEN '31'ELSE '30' END)
--C. 季度的最后一天(直接推算法)
SELECT DATEADD(Day,-1,
CONVERT(char(8),
DATEADD(Month,
1+DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)+'1')
--3.指定日期所在月份的第一天或最后一天
--A. 月的第一天
SELECT CONVERT(datetime,CONVERT(char(8),@dt,120)+'1')
--B. 月的最后一天
SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')
--C. 月的最后一天(容易使用的错误方法)
SELECT DATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))
--4.指定日期所在周的任意一天
SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)
--5.指定日期所在周的任意星期几
--A. 星期天做为一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)
--B. 星期一做为一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)
////////////////////////////////////////////////////////////////////////////////////////////////////
1. 当前系统日期、时间
select getdate()
2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
3. datediff 返回跨两个指定日期的日期和时间边界数。
select datediff(day,'2004-09-01','2004-09-18') --返回:17
4. datepart 返回代表指定日期的指定日期部分的整数。
select datepart(month, '2004-10-15') --返回 10
5. datename 返回代表指定日期的指定日期部分的字符串
select datename(weekday, '2004-10-15') --返回:星期五
6. day(), month(),year() --可以与datepart对照一下
select 当前日期=convert(varchar(10),getdate(),120),
当前时间=convert(varchar(8),getdate(),114)
select datename(dw,'2004-10-15')
select 本年第多少周=datename(week,'2004-10-15'),
今天是周几=datename(weekday,'2004-10-15')
函数
|
参数/功能 |
GetDate( )
|
返回系统目前的日期与时间 |
DateDiff (interval,date1,date2)
|
以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1 |
DateAdd (interval,number,date)
|
以interval指定的方式,加上number之后的日期 |
DatePart (interval,date)
|
返回日期date中,interval指定部分所对应的整数值 |
DateName (interval,date)
|
返回日期date中,interval指定部分所对应的字符串名称 |
参数 interval的设定值如下:
值
|
缩 写(Sql Server) |
(Access 和 ASP) |
说明 |
Year
|
Yy |
yyyy |
年 1753 ~ 9999 |
Quarter
|
Qq |
q |
季 1 ~ 4 |
Month
|
Mm |
m |
月1 ~ 12 |
Day of year
|
Dy |
y |
一年的日数,一年中的第几日 1-366 |
Day
|
Dd |
d |
日,1-31 |
Weekday
|
Dw |
w |
一周的日数,一周中的第几日 1-7 |
Week
|
Wk |
ww |
周,一年中的第几周 0 ~ 51 |
Hour
|
Hh |
h |
时0 ~ 23 |
Minute
|
Mi |
n |
分钟0 ~ 59 |
Second
|
Ss |
s |
秒 0 ~ 59 |
Millisecond
|
Ms |
- |
毫秒 0 ~ 999
|
SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm
例如:
select getdate()
2004-09-12 11:06:08.177
整理了一下SQL Server里面可能经常会用到的日期格式转换方法:
举例如下:
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608
select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12
select CONVERT(varchar(12) , getdate(), 112 )
20040912
select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12
select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004
select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004
select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004
select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004
select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004
select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004
select CONVERT(varchar(12) , getdate(), 108 )
11:06:08
select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1
select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004
select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1
select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177
分享到:
相关推荐
2.7 处理日期和时间数据 2.8 查询元数据 2.9 总结 2.10 练习 2.11 解决方案 第3章 联接查询 3.1 交叉联接 3.2 内联接 3.3 特殊的联接实例 3.4 外联接 3.5 总结 3.6 练习 3.7 解决方案 第4章 子查询 ...
2.7 处理日期和时间数据 2.8 查询元数据 2.9 总结 2.10 练习 2.11 解决方案 第3章 联接查询 3.1 交叉联接 3.2 内联接 3.3 特殊的联接实例 3.4 外联接 3.5 总结 3.6 练习 3.7 解决方案 第4...
本书涵盖了T-SQL程序设计的方方面面,如基于集合的编程技术、日期和时间相关的XML和CLR数据类型的使用、临时对象、T-SQL和CLR用户自定义函数、存储过程、触发器、事务和新的错误处理结构、应用并发模型支持并发用户...
第1章 T-SQL查询和编程基础 1.1 理论背景 1.2 SQL SERVER体系结构 1.3 创建表和定义数据完整性 1.4 总结 第2章 单表查询 2.1 SELECT语句的元素 2.2 谓词和运算符 2.3 CASE表达式 2.4 NULL...
│ │ 2.3.3 SET DATEFORMAT对日期处理的影响.sql │ │ 2.3.4 SET LANGUAGE对日期处理的影响示例.sql │ │ 2.4.1 日期格式化处理.sql │ │ 2.4.2 日期推算处理.sql │ │ 2.4.3 特殊日期加减函数.sql │ │ 2.5.1...
├─第02章 │ │ 2.1 日期概念理解中的一些测试.sql │ │ 2.2.4 CONVERT在日期转换中的使用示例.sql │ │ 2.3.3 SET DATEFORMAT对日期处理的影响.sql │ │ 2.3.4 SET LANGUAGE对日期处理...
SQL Server 数据库管理常用的SQL和T-SQL语句 SQL SERVER 与ACCESS、EXCEL的数据转换 sql server中,日期比较、日期查询的常用语句 SQLSERVER 索引 填充因子 Server 中一个非常强大的日期格式化函数 根据表中数据...
汇集了T-SQL的聚合函数、字符处理函数、数学函数、日期函数、系统函数等。
8.3 使用T-SQL编辑视图 8.4 删除视图 8.5 审核:显示现有代码 8.6 保护代码:加密视图 8.7 关于模式绑定 8.8 使用VIEW METADATA使自己的视图看起来像一个表 8.9 索引(物化)视图 8.10 分区...
2.2.4 其他日期处理相关函数 27 2.3 日期选项设置 29 2.3.1 default language选项 30 2.3.2 SET DATEFIRST 31 2.3.3 SET DATEFORMAT 31 2.3.4 SET LANGUAGE 33 2.4 日期格式化与日期推算处理 34 2.4.1...
8.3 使用T-SQL编辑视图 8.4 删除视图 8.5 审核:显示现有代码 8.6 保护代码:加密视图 8.7 关于模式绑定 8.8 使用VIEW METADATA使自己的视图看起来像一个表 8.9 索引(物化)视图 8.10 分区...
SQL Server管理Studio(SSMS) SQL Server数据工具(SSDT)(架构比较,数据比较...) SentryOne Plan Explorer-SQL Server查询调整T-SQL格式化程序SQL Server(mssql)| VS代码扩展 发展与迁移: SqlPackage.exe ...
Dan与Paul Turley合著了《SQL Server 2005 Transact.SQL编程入门经典》(由清华大学出版社引进并出版)和《T-SQL编程入门经典(涵盖SQL Server2008&2005;》)(由清华大学出版社引进并出版)两本书,同时主编了《SQL...
Dan与Paul Turley合著了《SQL Server 2005 Transact.SQL编程入门经典》(由清华大学出版社引进并出版)和《T-SQL编程入门经典(涵盖SQL Server2008&2005;》)(由清华大学出版社引进并出版)两本书,同时主编了《SQL...
Dan与Paul Turley合著了《SQL Server 2005 Transact.SQL编程入门经典》(由清华大学出版社引进并出版)和《T-SQL编程入门经典(涵盖SQL Server2008&2005;》)(由清华大学出版社引进并出版)两本书,同时主编了《SQL...
第三篇主要讲解SQL的编程,包括T-SQL语言、存储过程及触发器。第四篇讲解与商业智能有关的内容,包括集成服务、报表服务和分析服务。最后一篇是综合案例篇,分别使用.NET和Java语言实现了与SQL Server 2008的连接,...
8.3 使用T-SQL编辑视图 8.4 删除视图 8.5 审核:显示现有代码 8.6 保护代码:加密视图 8.7 关于模式绑定 8.8 使用VIEW METADATA使自己的视图看起来像一个表 8.9 索引(物化)视图 8.10 分区...
8.3 使用T-SQL编辑视图 8.4 删除视图 8.5 审核:显示现有代码 8.6 保护代码:加密视图 8.7 关于模式绑定 8.8 使用VIEW METADATA使自己的视图看起来像一个表 8.9 索引(物化)视图 8.10 分区...
8.3 使用T-SQL编辑视图 8.4 删除视图 8.5 审核:显示现有代码 8.6 保护代码:加密视图 8.7 关于模式绑定 8.8 使用VIEW METADATA使自己的视图看起来像一个表 8.9 索引(物化)视图 8.10 分区...
由于未在 Windows 中完全配置 Microsoft 分布式事务处理协调器 (MS DTC),因此,应用程序可能无法在分布式事务中登记 SQL Server Express 资源。此问题会影响使用分布式事务的链接服务器、分布式查询以及远程存储...