做一個(gè)學(xué)校項(xiàng)目的時(shí)候 要根據(jù)上中晚查詢 最后用的是
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比鶴山網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式鶴山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋鶴山地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
date_format(t1.record_time, '%H:%i:%s')??
SELECT t2.class_name,t1.class_no,t1.course_id,t1.course_name,t1.id,t1.pic_url,t1.record_time,t1.sign_day,t1.status,t1.student_name,t1.student_no FROM t_e_sign t1 LEFT JOIN t_e_sys_org t2 ON t2.org_code = t1.class_no WHERE IF (:studentName is not null, t1.student_name LIKE CONCAT('%',:studentName,'%') , 1 = 1) and IF (:className is not null, t2.class_name LIKE CONCAT('%',:className,'%') , 1 = 1) and IF (:startTime is not null, date_format(t1.record_time, '%Y-%m-%d') =:startTime , 1 = 1) and IF (:endTime is not null, date_format(t1.record_time, '%Y-%m-%d') =:endTime , 1 = 1) and IF (:startdetailTime is not null, date_format(t1.record_time, '%H:%i:%s') =:startdetailTime , 1 = 1) and IF (:enddetailTime is not null, date_format(t1.record_time, '%H:%i:%s') =:enddetailTime , 1 = 1) ORDER BY ?#{#pageable}",?
整個(gè)語句也寫下吧
java中有date和datetime,mysql中也有date和datetime,這里我們來說說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ù)的交互
能看出來mysql中的date和datetime區(qū)別還是挺大的,date沒有保存時(shí)間。但是java中的date(java.util.Date)記錄的還是挺細(xì)的,日期和時(shí)間都可以記下來,那么現(xiàn)在問題來了,如果想在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。
由此可見對(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í)間”。
解決方案一:
日期前面的符號(hào)換為逗號(hào)
日期可以用mysql的方法todate
解決方案二:
MySQL 插入數(shù)據(jù) date 格式
mysql插入date類型的值
mysql插入date類型的值
解決方案三:
nsert into table (date) values ('to_date('2009-06-08 23:53:17','YYYY-DD-MM HH:MI:SS'),'
解決方案四:
數(shù)據(jù)庫(kù)中日期字段設(shè)置datetime類型 然后就可以插入對(duì)應(yīng)字符串
拓展資料
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于?Oracle?旗下產(chǎn)品。MySQL 最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在 WEB 應(yīng)用方面MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)) 應(yīng)用軟件之一。
MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。
設(shè)置某字段為當(dāng)前時(shí)間,修改日期類型為timestamp并允許空,如下:
create
table
`test`
(`aaaa`
varchar(50)
not
null,`createday`
timestamp
null
default
current_timestamp
on
update
current_timestamp)
engine=innodb
default
charset=utf8;
如果是在navicat下操作的話,設(shè)置字段的類型為timestamp,默認(rèn)值寫上
current_timestamp.
mysql(5.5)所支持的日期時(shí)間類型有:DATETIME、?TIMESTAMP、DATE、TIME、YEAR。
1.DATETIME 用于表示 年月日 時(shí)分秒,是 DATE 和 TIME 的組合,并且記錄的年份比較長(zhǎng)久。如果實(shí)際應(yīng)用中有這樣的需求,就可以使用 DATETIME 類型。
2.TIMESTAMP
TIMESTAMP 用于表示 年月日 時(shí)分秒,但是記錄的年份比較短暫。
TIMESTAMP 和時(shí)區(qū)相關(guān),更能反映當(dāng)前時(shí)間。當(dāng)插入日期時(shí),會(huì)先轉(zhuǎn)換為本地時(shí)區(qū)后再存放;當(dāng)查詢?nèi)掌跁r(shí),會(huì)將日期轉(zhuǎn)換為本地時(shí)區(qū)后再顯示。所以不同時(shí)區(qū)的人看到的同一時(shí)間是? 不一樣的。
表中的第一個(gè)?TIMESTAMP?列自動(dòng)設(shè)置為系統(tǒng)時(shí)間(CURRENT_TIMESTAMP)。當(dāng)插入或更新一行,但沒有明確給 TIMESTAMP 列賦值,也會(huì)自動(dòng)設(shè)置為當(dāng)前系統(tǒng)時(shí)間。如果表中有第二個(gè) TIMESTAMP 列,則默認(rèn)值設(shè)置為0000-00-00 00:00:00。
TIMESTAMP 的屬性受 Mysql 版本和服務(wù)器 SQLMode 的影響較大。
如果記錄的日期需要讓不同時(shí)區(qū)的人使用,最好使用 TIMESTAMP。
3.DATE
DATE 用于表示 年月日,如果實(shí)際應(yīng)用值需要保存 年月日 就可以使用 DATE。
4.TIME
TIME 用于表示 時(shí)分秒,如果實(shí)際應(yīng)用值需要保存 時(shí)分秒 就可以使用 TIME。
5.YEAR
YEAR 用于表示 年份,YEAR 有 2 位(最好使用4位)和 4 位格式的年。 默認(rèn)是4位。如果實(shí)際應(yīng)用只保存年份,那么用 1 bytes 保存 YEAR 類型完全可以。不但能夠節(jié)約存儲(chǔ)空間,還能提高表的操作效率。
資料拓展:
每種日期時(shí)間類型都有一個(gè)有效值范圍,如果超出這個(gè)范圍,在默認(rèn)的SQLMode下會(huì)報(bào)錯(cuò),并以零值存儲(chǔ)。
插入或更新時(shí),日期時(shí)間類型允許“不嚴(yán)格”語法,以DATETIME為例(其他日期時(shí)間類型雷同):
YYYY-MM-DD HH:MM:SS?或?YY-MM-DD HH:MM:SS 格式的字符串。任何符號(hào)都可以用作日期部分或時(shí)間部分的間隔符。例如:“14-06-18 14:54:10”、“14*06*18 14.54.10”、“14+06+18 14=54=10”是等價(jià)的。對(duì)于包含日期時(shí)間的字符串值,如果月、日、時(shí)、分、秒的值小于10,不需要指定兩位數(shù)。例如:“2014-2-3 2:3:6”、“2014-02-03 02:03:06”是等價(jià)的。
YYYYMMDDHHMMSS 或?YYMMDDHHMMSS 格式的字符串。如果字符串對(duì)于日期時(shí)間類型是合法的就可以解釋為日期時(shí)間類型。例如:“20140618145410” 和 “140618145410”將被解釋為 “2014-06-18 14:54:10” ,但是?“20140618145480” 是不合法的(秒數(shù)不合法),將被解釋為 “0000-00-00 00:00:00”。
YYYYMMDDHHMMSS 或?YYMMDDHHMMSS 格式的數(shù)字。如果該數(shù)字對(duì)日期時(shí)間類型是合法的就可以解釋為日期時(shí)間類型。例如:“20140618145410” 和 “140618145410” 將被解釋為 “2014-06-18 14:54:10” 。數(shù)值的長(zhǎng)度應(yīng)為6、8、12、14。如果數(shù)值長(zhǎng)度是 8 或 14 位長(zhǎng),則假定為 YYYYMMDD 或?YYYYMMDDHHMMSS?格式。如果數(shù)值為 6 或 12 位長(zhǎng),則假定為 YYMMDD 或?YYMMDDHHMMSS?格式。
通過sql語句查詢下 看看現(xiàn)在的值
show variables like '%date%';
默認(rèn)的值是:
date_format= %Y-%m-%d
datetime_format=%Y-%m-%d %H:%i:%s
然后在mysql的配置文件my.cnf 或者 my.ini中 加入
[mysqld]
date_format= %Y/%m/%d
datetime_format=%Y/%m/%d %H:%i:%s
最后mysql服務(wù)器重啟即可。
當(dāng)前題目:mysql怎么建日期格式,mysql創(chuàng)建表日期格式
本文鏈接:http://vcdvsql.cn/article22/heddcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站設(shè)計(jì)、虛擬主機(jī)、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)