扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
从sqlserver数据库中提取日期应该使用,并把年月日分别截取出来应该使用
创新互联公司专业为企业提供遂平网站建设、遂平做网站、遂平网站设计、遂平网站制作等企业网站建设、网页设计与制作、遂平企业网站模板建站服务,十余年遂平做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
数据库提供的时间函数。
1:使用year,month,day用来提取年月日
如:select
year(getdate()),month(getdate()),day(getdate())
2:使用DATEPART
获取年月日
如:select
DATEPART('year',getdate()),DATEPART('month',getdate()),DATEPART('day',getdate())
----------------------------------------------------------------------------
如果字段是varchar类型的话,可以先将字段转换为日期类型。
使用类型转换函数convert或者cast
如:cast('2015-07-14'
as
datetime)
datetime最小值就是 1900-1-1 0:00:00 ,它不会有空值的。当你更新它的数据不合法或不指定时,它都会默认补上最小的日期。
如果想time能显示null,那么就不要把teim字段设为datetime类型,而应该为nvarchar、nchar等字符类型。
虽然作datediff操作需要用cast(time as datetime)转换,但能满足LZ需求了。
通常在MSSQL中没有系统的函数使用,我们使用
SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())计算,这个很简单,所以系统没有提供
但是要留意时区概念。
时间戳没有时区概念,日期时间有-且和电脑时区关联。
我们使用东八区传入DATEDIFF第三个参数,得到的是一个时间戳,这个值被理解为UTC标准时间的时间戳。再次使用在线工具转换为东八区时间时,会+8小时。这是令人困惑人的地方。
日期-时间戳-日期,使用同一时区,日期时间不会改变(其他系统默认的函数很可能将时间戳转换为带时区的日期,即当前是东八区,就会自动变为东八区日期)
Year(getdate()) --当前年
Month(getdate()) --当前月
Day(getdate()) --当前日
Datediff(d,时间字段,getdate()) --得到离过生日还剩的天数
sqlserver时间转换一般用convert函数。
1、select CONVERT(varchar, getdate(), 120 )
结果:2004-09-12 11:06:08
2、select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
结果:20040912110608
3、select CONVERT(varchar(12) , getdate(), 111 )
结果:2004/09/12
4、select CONVERT(varchar(12) , getdate(), 112 )
结果:20040912
5、select CONVERT(varchar(12) , getdate(), 102 )
结果:2004.09.12
6、select CONVERT(varchar(12) , getdate(), 101 )
结果:09/12/2004
7、select CONVERT(varchar(12) , getdate(), 103 )
结果:12/09/2004
8、select CONVERT(varchar(12) , getdate(), 104 )
结果:12.09.2004
9、select CONVERT(varchar(12) , getdate(), 105 )
结果:12-09-2004
10、select CONVERT(varchar(12) , getdate(), 106 )
结果:12 09 2004
11、select CONVERT(varchar(12) , getdate(), 107 )
结果:09 12, 2004
12、select CONVERT(varchar(12) , getdate(), 108 )
结果:11:06:08
13、select CONVERT(varchar(12) , getdate(), 109 )
结果:09 12 2004 1
14、select CONVERT(varchar(12) , getdate(), 110 )
结果:09-12-2004
15、select CONVERT(varchar(12) , getdate(), 113 )
结果:12 09 2004 1
16、select CONVERT(varchar(12) , getdate(), 114 )
结果:11:06:08.177
17、select getdate()
结果:2003-12-28 16:52:00.107
18、select convert(char(8),getdate(),112)
结果:20031228
19、select convert(char(8),getdate(),108)
结果:16:52:00
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流