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