数据库操作记录(2)日期求差DATEDIFF和格式转换CONVERT(CHAR(10),DATE ,21) /datename(year,lr.StartTime)

sqlserver 数据库操作

1、求日期之差

select  DATEDIFF(s,lr.StartTime ,lr.endtime ) as secCount from lr

第一个参数是 计算差值的标准  可以是 year month day week hour minute  s

注意事项:

DATEDIFF(s,date1,date2  )

用法 此函数计算两个指定日期之间日期部分的数目。结果为日期部分中等于(date2 - date1)的有符号的整数值。

当结果不是日期部分的偶数倍时,DATEDIFF 将被截断而不是被舍入。

当使用 day 作为日期部分时,DATEDIFF 返回两个指定的时间之间(包括第二个日期但不包括第一个日期)的午夜数。

当使用 month 作为日期部分时,DATEDIFF 返回两个日期之间(包括第二个日期但不包括第一个日期)出现的月的第一天的数目。

当使用 week 作为日期部分时,DATEDIFF 返回两个日期(包括第二个日期但不包括第一个日期)之间星期日的数目。

对于更小的时间单位存在溢出值:

milliseconds    24 天

seconds    68 年

minutes    4083 年

others    没有溢出限制

如果超出这些限制,此函数将返回溢出错误。


2、处理日期格式

2.1 使用convert函数

SELECT CONVERT(CHAR(10),DATE ,21) FROM TABLE1 WHERE .....
显示的是这种形式例2015-10-19

具体参数说明如下

SELECT CONVERT(varchar(30),getdate(),101) now
结果为
now

09/15/2001


/


style数字在转换时间时的含义如下


-------------------------------------------------------------------------------------------------
Style(2位表示年份)   |  Style(4位表示年份)    |   输入输出格式                                    
-------------------------------------------------------------------------------------------------
-                    |  0 or 100              |   mon dd yyyy hh:miAM(或PM)              
-------------------------------------------------------------------------------------------------
1                    |  101                   |   mm/dd/yy                                       
-------------------------------------------------------------------------------------------------
2                    |  102                   |   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 or 109              |   mon dd yyyy hh:mi:ss:mmmmAM(或PM)
-------------------------------------------------------------------------------------------------
10                   |  110                   |   mm-dd-yy                                         
-------------------------------------------------------------------------------------------------
11                   |  111                   |   yy/mm/dd                                        
-------------------------------------------------------------------------------------------------
12                   |  112                   |   yymmdd                                           
-------------------------------------------------------------------------------------------------
-                    |  13 or 113             |   dd mon yyyy hh:mi:ss:mmm(24小时制)  
-------------------------------------------------------------------------------------------------
14                   |  114                   |   hh:mi:ss:mmm(24小时制)                    
-------------------------------------------------------------------------------------------------
-                    |  20 or 120             |      yyyy-mm-dd hh:mi:ss(24小时制)         
-------------------------------------------------------------------------------------------------
-                    |  21 or 121             |      yyyy-mm-dd hh:mi:ss:mmm(24小时制) 

抄的执行结果

原文

SELECT CONVERT(varchar(100), GETDATE(), 0) 05  9 2011  9:12AM
 SELECT CONVERT(varchar(100), GETDATE(), 1) 05/09/11
SELECT CONVERT(varchar(100), GETDATE(), 2) 11.05.09
SELECT CONVERT(varchar(100), GETDATE(), 3) 09/05/11
SELECT CONVERT(varchar(100), GETDATE(), 4) 09.05.11
SELECT CONVERT(varchar(100), GETDATE(), 5) 09-05-11
SELECT CONVERT(varchar(100), GETDATE(), 6) 09 05 11
SELECT CONVERT(varchar(100), GETDATE(), 7) 05 09, 11
SELECT CONVERT(varchar(100), GETDATE(), 8) 09:13:14
SELECT CONVERT(varchar(100), GETDATE(), 9) 05  9 2011  9:13:14:670AM
SELECT CONVERT(varchar(100), GETDATE(), 10) 05-09-11
SELECT CONVERT(varchar(100), GETDATE(), 11) 11/05/09
SELECT CONVERT(varchar(100), GETDATE(), 12) 110509
SELECT CONVERT(varchar(100), GETDATE(), 13) 09 05 2011 09:13:14:670
SELECT CONVERT(varchar(100), GETDATE(), 14) 09:13:14:670
SELECT CONVERT(varchar(100), GETDATE(), 20) 2011-05-09 09:13:14
SELECT CONVERT(varchar(100), GETDATE(), 21) 2011-05-09 09:13:14.670
SELECT CONVERT(varchar(100), GETDATE(), 22) 05/09/11  9:15:33 AM
SELECT CONVERT(varchar(100), GETDATE(), 23) 2011-05-09
SELECT CONVERT(varchar(100), GETDATE(), 24) 09:15:33
SELECT CONVERT(varchar(100), GETDATE(), 25) 2011-05-09 09:15:33.140
SELECT CONVERT(varchar(100), GETDATE(), 100) 05  9 2011  9:15AM
SELECT CONVERT(varchar(100), GETDATE(), 101) 05/09/2011
SELECT CONVERT(varchar(100), GETDATE(), 102) 2011.05.09
SELECT CONVERT(varchar(100), GETDATE(), 103) 09/05/2011
SELECT CONVERT(varchar(100), GETDATE(), 104) 09.05.2011
SELECT CONVERT(varchar(100), GETDATE(), 105) 09-05-2011
SELECT CONVERT(varchar(100), GETDATE(), 106) 09 05 2011
SELECT CONVERT(varchar(100), GETDATE(), 107) 05 09, 2011
SELECT CONVERT(varchar(100), GETDATE(), 108) 09:16:38
SELECT CONVERT(varchar(100), GETDATE(), 109) 05  9 2011  9:16:38:543AM
SELECT CONVERT(varchar(100), GETDATE(), 110) 05-09-2011
SELECT CONVERT(varchar(100), GETDATE(), 111) 2011/05/09
SELECT CONVERT(varchar(100), GETDATE(), 112) 20110509
SELECT CONVERT(varchar(100), GETDATE(), 113) 09 05 2011 09:17:19:857
SELECT CONVERT(varchar(100), GETDATE(), 114) 09:17:19:857
SELECT CONVERT(varchar(100), GETDATE(), 120) 2011-05-09 09:17:19
SELECT CONVERT(varchar(100), GETDATE(), 121) 2011-05-09 09:17:19.857
SELECT CONVERT(varchar(100), GETDATE(), 126) 2011-05-09T09:17:19.857
SELECT CONVERT(varchar(100), GETDATE(), 130)  6 ????? ??????? 1432  9:17:19:857AM
SELECT CONVERT(varchar(100), GETDATE(), 131)  6/06/1432  9:17:19:857AM

2.2 使用datename函数   也可以实现该效果
datename(year,lr.StartTime)+'-'+datename(month,lr.StartTime)+'-'+datename(day,lr.starttime)


另外,DateName()还可以获得到小时、时间、秒、星期几、第几周,分别如下:

Select Datename(hour,GetDate())
Select Datename(minute,GetDate())
Select Datename(second,GetDate())
Select Datename(weekDay,GetDate())
Select Datename(week,GetDate())
拼接日期为字符串 ,以便在c#代码中直接使用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值