MYSQL数据库与MSSQL对比学习MYSQL的心得(六)--函数
MYSQL应用 MYSQL应用 SELECT EXTRACT(YEAR FROM '2013-2-3') MYSQL应用 MYSQL应用7、时间和秒钟转换的函数 MYSQL应用TIME_TO_SEC(time)返回已转化为秒的time参数,转换公式为:小时*3600+分钟*60+秒 MYSQL应用 SELECT TIME_TO_SEC('23:22:00') MYSQL应用 MYSQL应用 SELECT SEC_TO_TIME('84120')? MYSQL应用SEC_TO_TIME(second)函数和TIME_TO_SEC(time)函数互为反函数 MYSQL应用8、计算日期和时间的函数 MYSQL应用MYSQL里计算日期和时间的函数比较多 MYSQL应用增加日期:DATE_ADD(date,interval? expr type),ADDDATE(date,interval? expr type) MYSQL应用减去日期:DATE_SUB(date,SUBDATE(date,interval? expr type) MYSQL应用增加时间:ADD_TIME(date,expr) MYSQL应用减去时间:SUBTIME(date,expr) MYSQL应用时间差:DATEDIFF() MYSQL应用日期和时间格式化: MYSQL应用DATE_FORMAT(date,format) MYSQL应用TIME_FORMAT(time,format) MYSQL应用返回日期时间字符串的显示格式:GET_FORMAT(val_type,format_type) MYSQL应用相对来说,SQLSERVER在时间日期方面的计算就没有那么多函数了 MYSQL应用基本上SQLSERVER利用下面两个函数来通杀日期时间计算的场景 MYSQL应用SELECT DATEADD(),DATEDIFF() MYSQL应用条件判断函数也称为流程控制函数,根据满足的条件的不同,执行相应的流程. MYSQL应用MYSQL中进行条件判断的函数有IF、IFNULL、CASE MYSQL应用虽然SQLSERVER里也有IF和CASE,不过MYSQL里的IF语句的语法跟SQLERVER有很大出入 MYSQL应用? MYSQL应用1、IF(expr,v1,v2)函数 MYSQL应用IF(expr,v2)如果表达式expr是TRUE(expr<>0 and expr<>NULL),则IF()的返回值为v1; MYSQL应用否则返回值为v2.IF()的返回值为数字值或字符串值,具体情况视其所在语境而定 MYSQL应用 SELECT IF(1>2,2,3) MYSQL应用 MYSQL应用1>2的结果为FALSE,IF(1>2,3)返回第二个表达式的值3. MYSQL应用TIPS:如果v1或v2中只有一个明确是NULL,则IF()函数的结果类型为非NULL表达式的结果类型. MYSQL应用2、IFNULL(V1,V2)函数 MYSQL应用IFNULL(V1,V2)假如v1不为NULL,则IFNULL(V1,V2)的返回值为v1;否则其返回值为v2. MYSQL应用IFNULL()的返回值是数字或是字符串,具体情况视语境而定 MYSQL应用 SELECT IFNULL(1,2),IFNULL(NULL,10) MYSQL应用 MYSQL应用IFNULL(1,2)虽然第二个值也不为空,但返回结果依然是第一个值; MYSQL应用IFNULL(NULL,10)第一个值为空,因此返回“10” MYSQL应用注意:IFNULL(V1,V2)函数跟SQLSERVER里的 SELECT NULLIF() 函数不一样 MYSQL应用SQLSERVER里的NULLIF函数 MYSQL应用需要两个参数,如果两个指定的表达式等价,则返回null MYSQL应用例子:NULLIF(a,b) MYSQL应用说明:如果a和b是相等的,那么返回NULL,如果不相等返回a MYSQL应用select NULLIF('eqeqweqwe','1') 结果是eqeqweqwe MYSQL应用select NULLIF(1,1) 结果是NULL MYSQL应用a和b的类型要一致 MYSQL应用3、CASE函数 MYSQL应用注意:一个CASE表达式的默认返回值类型是任何返回值的相容集合类型,但具体情况视其所在语境而定. MYSQL应用如果用字符串语境中,则返回结果为字符串.如果用在数字语境中,则返回结果为十进制、实数值或整数值 MYSQL应用这个数据类型在拼接SQL语句的时候特别容易忽略,有时候会在拼接SQL语句的时候,case 后面的表达式或者when后面的表达式不一致报错! MYSQL应用参考文章:http://support.microsoft.com/kb/969467/zh-cn MYSQL应用修补程序: 错误消息,当您运行查询时,SQL Server 2008年中使用 CASE 函数:"转换失败时转换为数据类型 < Type2 > < Type1 > 值 < 值 >" MYSQL应用在MSDN论坛也有一个相关的帖子,大概是因为拼接sql的时候case 后面的表达式值的数据类型和else后面的表达式值的数据类型不一致导致拼接sql失败 MYSQL应用具体的帖子地址忘记了,也找不到,如果找到以后会补充上 MYSQL应用系统信息函数 MYSQL应用1、获取MYSQL版本号、连接数和数据库名的函数 MYSQL应用VERSION()返回指示MYSQL服务器版本的字符串.这个字符串使用utf8字符集 MYSQL应用 SELECT VERSION() (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |