Sybase转化为Mysql

1.getdate() 函数
mysql数据库中,now() 函数可直接替换getdate() 函数,若只需要日期,可用 curdate()函数。
2.default getdate()
mysql的时间日期字段,不能指定缺省值为函数,如 now()或 curdate(),因此若代码逻辑上依赖数据库的这个特点,需要修改,而timestamp类型字段,默认情况下,在insert和update时会变更时间,允许设置default now()来实现只在insert的时候赋值,但是在一个表中,却只允许,只有一个timestamp类型字段设置非常量的default值,因此,只能在修改所有”insert into duser”的地方,人工为需要使用当前时间作为缺省值的字段,显义赋值now(), 涉及到的字段daddUpdateTimeStamp
4.dateadd() 函数
sybase中,dateadd函数有三个入参,如: dateadd(second,xx,xx)
mysql中,有对应函数 date_add:
date_add(now(),interval 1 second)
date_add(now(),interval -1 hour)
date_add(now(),interval -1 day)
date_add(now(),interval xx day)
5.datediff() 函数
sybase中,datediff函数有三个入参,如: datediff(ss,xx,xx)
mysql中,对应函数 datediff函数只是用来计算两个时间量之间的天数差,而函数TimeStampDiff用来替 换sybase的DateDiff,如:TimeStampDiff(second,’xx’,’xx’) 参数的个数和格式基本是一样的,可以直接替换(注意sybase支持ss这样的second简写,mysql中需要改为全写)。
6.convert() 函数
convert(char(10),xx,xx)主要是保证查询结果中的日期时间格式是长日期格式,mysql缺省就是以’YYYY- MM-DD HH:MM:SS’格式检索和显示DATETIME值。支持的范围为’1000-01-01 00:00:00’到’9999-12-31 23:59:59’。
7.getIdentity
在sybase中,可利用identity字段来在Insert的时候快速生成记录的主键ID,然后用select identity 获取该主键ID.
8. sybase有isnull函数,而mysql没有isnull函数,要用ifnull函数替换。
9. 左右连接问题
sybase中左右连接可以用:* 如:a=*b;表示右连接
mysql中只能用xx right join xx on xx=xx;这种方法来表示。
10. top [number]
在sybase中一般都放在select后面,常用来查看产出数据的前面number条数据,但是在mysql中没有top关键字,用limit关键字来替换它,但是要将limit 【number】放在查询语句的最后面。
11. str_replace字符串替换函数
在sybase中常用,但是在mysql中用的是replace(str,char1,char2)。

语法结构注意:
1.sybase中的IF语法:IF…ELSE…END
mysql中的IF语法:IF THEN … ELSE… END IF语法
2.sybase中的CASE 语法:CASE WHEN … THEN … ELSE … END 语法
mysql中CASE 语法:
CASE WHEN [condition] THEN result [WHEN [condition] THEN result …] [ELSE result] END
3. WHILE语句
mysql中WHILE语法:
WHILE … END WHILE

你可能感兴趣的:(mysql)