I) 字段類(lèi)型轉(zhuǎn)化 MySQL 的CAST()和CONVERT()函數(shù)可用來(lái)獲取一個(gè)類(lèi)型的,并產(chǎn)生另一個(gè)類(lèi)型的。兩者具體的語(yǔ)法如下: CAST(value as type);CONVERT(value, type); 就是CAST(xxx AS 類(lèi)型), CONVERT(xxx,類(lèi)型)。 可以轉(zhuǎn)換的類(lèi)型是有限制的。這個(gè)類(lèi)型可以是以下其
I) 字段類(lèi)型轉(zhuǎn)化MySQL 的CAST()和CONVERT()函數(shù)可用來(lái)獲取一個(gè)類(lèi)型的值,并產(chǎn)生另一個(gè)類(lèi)型的值。兩者具體的語(yǔ)法如下:
CAST(value as type); CONVERT(value, type);
就是CAST(xxx AS 類(lèi)型), CONVERT(xxx,類(lèi)型)。
可以轉(zhuǎn)換的類(lèi)型是有限制的。這個(gè)類(lèi)型可以是以下值其中的一個(gè):
EEG: mysql> SELECT CAST('3.35' AS signed); +------------------------+ | CAST('3.35' AS signed) | +------------------------+ | 3 | +------------------------+ 1 row in setmysql> SELECT CONVERT('23.001',SIGNED); +----------------------+ | CONVERT('23',SIGNED) | +----------------------+ | 23 | +----------------------+ 1 row in set
轉(zhuǎn)化為float:
SELECT 23+0.000
輸出:23.000
以下為項(xiàng)目中應(yīng)用的SQL語(yǔ)句實(shí)例:
/*SQLServerDB query methodconvert to float
return this.getSession().createQuery(" FROM "+this.clazz.getName()+" this WHERE this.areaCode IN(:areaCode) and " +
"(convert(float,this.cpuUsedPer) > '"+Float.valueOf(cpuValue)+"' or convert(float,this.memoryUsedPer) > '"+Float.valueOf(memValue)+"' or
convert(float,this.diskLaveSize) < '"+Float.valueOf(diskValue)+ "' or this.appServerState=1 or this.dbServerState=1 or this.mgrServerState=1 or
convert(float,DateDiff(mi,this.lastActiveTime,getDate()))> '"+Float.parseFloat(timeOutValue)+"')") .setParameterList("areaCode", areaCode) .list();
*/
//@author:chenjun /20140515 MysqlDB
query method with convert DECIMAL
return this.getSession().createQuery(" FROM "+this.clazz.getName()+" this WHERE this.areaCode IN(:areaCode) and " +
"(this.cpuUsedPer+0.00) > '"+Float.valueOf(cpuValue)+"' or (this.memoryUsedPer+0.00) > '"+Float.valueOf(memValue)+"' or (this.diskLaveSize+0.00) <
'"+Float.valueOf(diskValue)+ "' or this.appServerState=1 or this.mgrServerState=1 or convert(TIMESTAMPDIFF(MINUTE,this.lastActiveTime,NOW()),DECIMAL)>
'"+Float.parseFloat(timeOutValue)+"')").setParameterList("areaCode", areaCode) .list();
II )時(shí)間類(lèi)型相關(guān)處理
SQLServer
DateDiff(mi,this.lastActiveTime,getDate()) 返回lastActiveTime Date 時(shí)間與當(dāng)前系統(tǒng)時(shí)間的時(shí)間差,單位為分鐘
Mysql
DATEDIFF(expr,expr2) DATEDIFF() 返回起始時(shí)間 expr和結(jié)束時(shí)間expr2之間的天數(shù)expr > expr2 ,返回值 > 0 ; expr = expr2 ,返回值= 0 ;expr < expr2 ,返回值< 0 ;
TIMEDIFF(expr,expr2) TIMEDIFF() 返回起始時(shí)間 expr 和結(jié)束時(shí)間expr2 之間的時(shí)間
expr > expr2 ,返回值 > 0 ; expr = expr2 ,返回值= 0 ;expr < expr2 ,返回值< 0 ;
expr > expr2 ,返回值 < 0 ; expr = expr2 ,返回值= 0 ;expr > expr2 ,返回值< 0 ;(參數(shù)與DATEDIFF、TIMEDIFF相反)
測(cè)試值:expr=‘2015-05-15 17:00:10’ ;NOW() = ‘2015-05-15 17:40:10’,
mysql>SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
-> 3 mysql>SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');
-> -1 mysql>SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55');
-> 128885
SHOW TABLE STATUS,http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#show-table-status
日期和時(shí)間類(lèi)型概述文檔
http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#date-and-time-type-overview
JOIN語(yǔ)法文檔,
http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#join
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com