首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

sql server 仿照mysql的方法

2012-08-03 
sql server 模仿mysql的方法/** *

sql server 模仿mysql的方法

/** * ============================================================================ *名称: util_sysdate *  描述: 模拟mysql中sysdate() *  作者: david * ============================================================================ */function util_sysdate(){if($this->config['db_dsn']['phptype']=='mssql'){$value_returned='getdate()';}elseif($this->config['db_dsn']['phptype']='mysql'){$value_returned='sysdate()';}else{$value_returned='sysdate';}return $value_returned;}/** * ============================================================================ *名称: util_ifnull *  描述: 模拟mysql中ifnull() *  参数: $check_value : 要检查的值 *  $isnull_return : 当$check_value为null时,返回的值 *  作者: david * ============================================================================ */function util_ifnull($check_value,$isnull_return){if($this->config['db_dsn']['phptype']=='mssql'){$value_returned=($isnull_return=='') ? 'isnull('.$check_value.',\'\')' : 'isnull('.$check_value.','.$isnull_return.')';}elseif($this->config['db_dsn']['phptype']='mysql'){$value_returned=($isnull_return=='') ? 'ifnull('.$check_value.',\'\')' : 'ifnull('.$check_value.','.$isnull_return.')';}else{$value_returned=($isnull_return=='') ? 'nvl('.$check_value.',\'\')' : 'nvl('.$check_value.','.$isnull_return.')';}return $value_returned;}/** * ============================================================================ *名称: util_lower *  描述: 模拟mysql中lower() *  参数: $value : 要改变的值 *  作者: david * ============================================================================ */function util_lower($lower_value){if($this->config['db_dsn']['phptype']=='mssql'){$value_returned='lower('.$lower_value.')';}elseif($this->config['db_dsn']['phptype']='mysql'){$value_returned='lower('.$lower_value.')';}else{$value_returned='lower('.$lower_value.')';}return $value_returned;}/** * ============================================================================ *名称: util_top *  描述: 模拟mssql中top  *  参数: $sql : 要执行的sql语句 *  $top_value : 取执行$sql所返回结果集的记录数 *  作者: david * ============================================================================ */function util_top($sql,$top_value){if($this->config['db_dsn']['phptype']=='mssql'){$sql=trim($sql);$sql=substr_replace($sql,'select top '.$top_value,0,6);$value_returned=$sql;}elseif($this->config['db_dsn']['phptype']=='mysql'){$sql=$sql.' limit 0,'.$top_value;$value_returned=$sql;}else{$pos=strripos($sql,'where');$top_value++;$sql=substr_replace($sql,'where rownum <'.$top_value.' and ',$pos,5);$value_returned=$sql;}return $value_returned;}/** * ============================================================================ *名称: util_date_format *  描述: 模拟mssql中convert(date_type,datetime,style) *  参数: $format_date : 要格式化的日期值 *  $format_type : 返回的类型 * 112 ------- yyyymmdd *  111 ------- yyyy/mm/dd *  120 ------- yyyy-mm-dd *  作者: david * ============================================================================ */ function util_date_format($format_date,$format_type=112){ if($this->config['db_dsn']['phptype']=='mssql'){$value_returned='convert(char(10),'.$format_date.','.$format_type.')';}elseif($this->config['db_dsn']['phptype']='mysql'){if($format_type==112){$value_returned='date_format('.$format_date.',\'%Y%m%d\')';}elseif($format_type==111){$value_returned='date_format('.$format_date.',\'%Y/%m/%d\')';}elseif($format_type==120){$value_returned='date_format('.$format_date.',\'%Y-%m-%d\')';}}else{if($format_type==112){$value_returned='to_date('.$format_date.',\'yyyymmdd\')';}elseif($format_type==111){$value_returned='to_date('.$format_date.',\'yyyy/mm/dd\')';}elseif($format_type==120){$value_returned='to_date('.$format_date.',\'yyyy-mm-dd\')';}}return $value_returned; } /** * ============================================================================ * 名称: util_date_diff * 描述: 模拟mssql中datediff() * 参数:   $datepart: 返回的差异类型    day  ------  天数    year  ------  年数    month  ------  月数    week  ------  周数    hour  ------  小时    minute  ------  分钟    second  ------  秒数      $startdate: 时间较小值  $enddate: 时间较大值 * 作者: david * ============================================================================ */ function util_date_diff($datepart,$startdate,$enddate){ if($this->config['db_dsn']['phptype']=='mssql'){ if($datepart=='day'){$value_returned='datediff(day,'.$startdate.','.$enddate.')';}}elseif($this->config['db_dsn']['phptype']='mysql'){if($datepart=='day'){$value_returned='(to_days('.$enddate.')-to_days('.$startdate.'))';}}else{//Oracle;}return $value_returned; }  /** * ============================================================================ * 名称: util_length * 描述: 模拟mysql中length() * 参数:  返回的差异类型 * 作者: david * ============================================================================ */ function util_length($value){ if($this->config['db_dsn']['phptype']=='mssql'){$value_returned='len('.$value.')';}elseif($this->config['db_dsn']['phptype']='mysql'){$value_returned='length('.$value.')';}else{//Oracle;}return $value_returned; } /** * ============================================================================ * 名称: util_RowNum * 描述: 模拟mssql中ROW_NUMBER() * 参数:  * 作者: david * ============================================================================ */  function util_RowNum($value){ if($this->config['db_dsn']['phptype']=='mssql'){$value_returned=' ROW_NUMBER() OVER(ORDER BY sum('.$value.') DESC)';}elseif($this->config['db_dsn']['phptype']='mysql'){$value_returned=' RowNum()';}else{//Oracle;}return $value_returned; }/** * ============================================================================ * 名称: util_dbo * 描述: mssql时用户函数需要加上dbo前缀。 * 参数: $value:用户函数名称 * 作者: david * ============================================================================ */  function util_dbo($value){ if($this->config['db_dsn']['phptype']=='mssql'){$value_returned='dbo.'.$value;}elseif($this->config['db_dsn']['phptype']='mysql'){$value_returned=$value;}else{//Oracle;}return $value_returned; } /** * ============================================================================ * 名称: util_last_insert_id * 描述: 模拟mysql函数last_insert_id() * 作者: david * ============================================================================ */  function util_last_insert_id(){ if($this->config['db_dsn']['phptype']=='mssql'){$value_returned='@@IDENTITY';}elseif($this->config['db_dsn']['phptype']='mysql'){$value_returned='last_insert_id()';}else{//Oracle;}return $value_returned; } /** * ============================================================================ * 名称: util_date_add * 描述: 模拟mysql函数date_add() * 参数:   $datepart: 新增时间类型    day  ------  天数    year  ------  年数    month  ------  月数    week  ------  周数    hour  ------  小时    minute  ------  分钟    second  ------  秒数  $startdate:起始日期    $value: 新增时间数值 * 作者: david * ============================================================================ */  function util_date_add($datepart,$startdate,$value){ if($this->config['db_dsn']['phptype']=='mssql'){$value_returned='dateadd('.$datepart.','.$value.','.$startdate.')';}elseif($this->config['db_dsn']['phptype']='mysql'){$value_returned='date_add('.$startdate.',interval '.$value.' '.$datepart.')';}else{//Oracle;}return $value_returned; }
?

热点排行