1.1 獲得當(dāng)前日期+時(shí)間(date + time)函數(shù):now()
成都創(chuàng)新互聯(lián)于2013年開(kāi)始,先為柳城等服務(wù)建站,柳城等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為柳城企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
除了 now() 函數(shù)能獲得當(dāng)前的日期時(shí)間外,MySQL 中還有下面的函數(shù):
current_timestamp() current_timestamp
localtime() localtime
localtimestamp() localtimestamp
這些日期時(shí)間函數(shù),都等同于 now()。鑒于 now() 函數(shù)簡(jiǎn)短易記,建議總是使用 now() 來(lái)替代上面列出的函數(shù)。
1.2 獲得當(dāng)前日期+時(shí)間(date + time)函數(shù):sysdate()
sysdate() 日期時(shí)間函數(shù)跟 now() 類似,不同之處在于:now() 在執(zhí)行開(kāi)始時(shí)值就得到了, sysdate() 在函數(shù)執(zhí)行時(shí)動(dòng)態(tài)得到值。
2. 獲得當(dāng)前日期(date)函數(shù):curdate()
其中,下面的兩個(gè)日期函數(shù)等同于 curdate(): current_date(),current_date
3. 獲得當(dāng)前時(shí)間(time)函數(shù):curtime()
其中,下面的兩個(gè)時(shí)間函數(shù)等同于 curtime():current_time(),current_time
4. 獲得當(dāng)前 UTC 日期時(shí)間函數(shù):utc_date(), utc_time(), utc_timestamp()
java中有date和datetime,mysql中也有date和datetime,這里我們來(lái)說(shuō)說(shuō)mysql中的date和datetime。
1 mysql中的date和datetime
1.1 DATETIME
類型可用于需要同時(shí)包含日期和時(shí)間信息的值。MySQL 以:
‘YYYY-MM-DD HH:MM:SS’
格式檢索與顯示 DATETIME 類型。支持的范圍是:
‘1000-01-01 00:00:00’
到
‘9999-12-31 23:59:59’。
(“支持”的含義是,盡管更早的值可能工作,但不能保證他們均可以。)
1.2 DATE
類型可用于需要一個(gè)日期值而不需要時(shí)間部分時(shí)。MySQL 以
‘YYYY-MM-DD’
格式檢索與顯示DATE值。支持的范圍則是
‘1000-01-01’
到
‘9999-12-31’。
2 與java數(shù)據(jù)的交互
能看出來(lái)mysql中的date和datetime區(qū)別還是挺大的,date沒(méi)有保存時(shí)間。但是java中的date(java.util.Date)記錄的還是挺細(xì)的,日期和時(shí)間都可以記下來(lái),那么現(xiàn)在問(wèn)題來(lái)了,如果想在mysql中存儲(chǔ)日期和時(shí)間,也就是用datetime,而在數(shù)據(jù)中應(yīng)該如何對(duì)應(yīng)呢?
我使用hibernate測(cè)了一下,發(fā)現(xiàn)當(dāng)把mysql數(shù)據(jù)庫(kù)中設(shè)置了datetime,反向工程生成的hbm.xml文件中,使用的是timestamp,如下:
property name="Publishdate" column="publishdate" type="timestamp" not-null="false" length="10" /1
反向生成java的pojo時(shí),生成的還是Date。
由此可見(jiàn)對(duì)于mysql中datetime,與java中的date,如果要使二者正確交互,中間要使用timestamp。
如果要在JAVA中直接插入MySql的datetime類型,則可以使用:
Date date = new Date();
Timestamp timeStamp = new Timestamp(date.getTime());12
再用setTimestamp()設(shè)置數(shù)據(jù)庫(kù)中的“日期+時(shí)間”。
這樣放入數(shù)據(jù)庫(kù)的就是“yyyy-mm-dd hh:mm:ss”格式的數(shù)據(jù)。
注意,mysql中如果使用date而不是datetime是保存不下“日期+時(shí)間”的,只能保存“時(shí)間”。
要看你的需求了,如果是保存日期與時(shí)間串,可以用datetime和time字段類型,如果是保存UNIX時(shí)間戳,可以用int字段類型。
---------------------
補(bǔ)充回到:
設(shè)置2個(gè)字段,一個(gè)為開(kāi)始時(shí)間,一個(gè)為結(jié)束時(shí)間。
程序里面用當(dāng)前時(shí)間去比對(duì)數(shù)據(jù)庫(kù)里面開(kāi)始時(shí)間和結(jié)束時(shí)間的數(shù)據(jù),符合結(jié)果的就是正在租用期間的數(shù)據(jù)。
SQL語(yǔ)句:
SELECT * FROM 租用表 WHERE 結(jié)束時(shí)間當(dāng)前時(shí)間 AND 開(kāi)始時(shí)間當(dāng)前時(shí)間
首先你得定義一個(gè)表示時(shí)間的字段如:datetime,date,timestamp
其次是插入的數(shù)據(jù)要是時(shí)間格式如:'2016-5-6'