time類型 默認(rèn)是精確到毫秒,可以自己設(shè)置大小讓time類型的大小為0,則只顯示時分秒了
成都創(chuàng)新互聯(lián)技術(shù)團(tuán)隊十多年來致力于為客戶提供網(wǎng)站制作、網(wǎng)站設(shè)計、品牌網(wǎng)站設(shè)計、營銷型網(wǎng)站建設(shè)、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗豐富的技術(shù)團(tuán)隊,先后服務(wù)、推廣了千余家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。
不過此類型sqlserver 2008才有
從sqlserver數(shù)據(jù)庫中提取日期應(yīng)該使用,并把年月日分別截取出來應(yīng)該使用
數(shù)據(jù)庫提供的時間函數(shù)。
1:使用year,month,day用來提取年月日
如:select year(getdate()),month(getdate()),day(getdate())
2:使用DATEPART 獲取年月日
如:select DATEPART('year',getdate()),DATEPART('month',getdate()),DATEPART('day',getdate())
----------------------------------------------------------------------------
如果字段是varchar類型的話,可以先將字段轉(zhuǎn)換為日期類型。
使用類型轉(zhuǎn)換函數(shù)convert或者cast
如:cast('2015-07-14' as datetime)
sqlserver時間轉(zhuǎn)換一般用convert函數(shù)。
1、select CONVERT(varchar, getdate(), 120 )
結(jié)果:2004-09-12 11:06:08
2、select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
結(jié)果:20040912110608
3、select CONVERT(varchar(12) , getdate(), 111 )
結(jié)果:2004/09/12
4、select CONVERT(varchar(12) , getdate(), 112 )
結(jié)果:20040912
5、select CONVERT(varchar(12) , getdate(), 102 )
結(jié)果:2004.09.12
6、select CONVERT(varchar(12) , getdate(), 101 )
結(jié)果:09/12/2004
7、select CONVERT(varchar(12) , getdate(), 103 )
結(jié)果:12/09/2004
8、select CONVERT(varchar(12) , getdate(), 104 )
結(jié)果:12.09.2004
9、select CONVERT(varchar(12) , getdate(), 105 )
結(jié)果:12-09-2004
10、select CONVERT(varchar(12) , getdate(), 106 )
結(jié)果:12 09 2004
11、select CONVERT(varchar(12) , getdate(), 107 )
結(jié)果:09 12, 2004
12、select CONVERT(varchar(12) , getdate(), 108 )
結(jié)果:11:06:08
13、select CONVERT(varchar(12) , getdate(), 109 )
結(jié)果:09 12 2004 1
14、select CONVERT(varchar(12) , getdate(), 110 )
結(jié)果:09-12-2004
15、select CONVERT(varchar(12) , getdate(), 113 )
結(jié)果:12 09 2004 1
16、select CONVERT(varchar(12) , getdate(), 114 )
結(jié)果:11:06:08.177
17、select getdate()
結(jié)果:2003-12-28 16:52:00.107
18、select convert(char(8),getdate(),112)
結(jié)果:20031228
19、select convert(char(8),getdate(),108)
結(jié)果:16:52:00
SELECT CAST(DATEPART(yyyy, '2017-2-28 10:44:10') AS VARCHAR(4))
+replicate('0',2-len(cast(month('2017-2-28 10:44:10') as varchar(2)))) + cast(month('2017-2-28 10:44:10') as varchar(2))
+replicate('0',2-len(cast(day('2017-2-28 10:44:10') as varchar(2)))) + cast(day('2017-2-28 10:44:10') as varchar(2))
+replicate('0',2-len(cast(datepart(hh,'2017-2-28 10:44:10') as varchar(2)))) + cast(datepart(hh, '2017-2-28 10:44:10') as varchar(2))
+replicate('0',2-len(cast(datepart(n,'2017-2-28 10:44:10') as varchar(2)))) + cast(datepart(n, '2017-2-28 10:44:10') as varchar(2))
+replicate('0',2-len(cast(datepart(ss,'2017-2-28 10:44:10') as varchar(2)))) + cast(datepart(ss, '2017-2-28 10:44:10') as varchar(2))
datetime最小值就是 1900-1-1 0:00:00 ,它不會有空值的。當(dāng)你更新它的數(shù)據(jù)不合法或不指定時,它都會默認(rèn)補上最小的日期。
如果想time能顯示null,那么就不要把teim字段設(shè)為datetime類型,而應(yīng)該為nvarchar、nchar等字符類型。
雖然作datediff操作需要用cast(time as datetime)轉(zhuǎn)換,但能滿足LZ需求了。
FROM_UNIXTIME( ):轉(zhuǎn)為時間戳類型時間
UNIX_TIMESTAMP( ) :返回長整形類型時間
from_unixtime()是MySQL里的時間函數(shù)
select uid,userid,username,email,FROM_UNIXTIME(addtime,'%Y年%m月%d') from members
以上例子是sql語句的例子,直接能將mysql的時間戳類型轉(zhuǎn)換成日期格式
date為需要處理的參數(shù)(該參數(shù)是Unix 時間戳),可以是字段名,也可以直接是Unix 時間戳字符串
后面的 '%Y%m%d' 主要是將返回值格式化 (這里的時間格式可以動態(tài)定義)
例如:
mysqlSELECT FROM_UNIXTIME( 1249488000, '%Y%m%d' )
-20071120
mysqlSELECT FROM_UNIXTIME( 1249488000, '%Y年%m月%d' )
-2007年11月20