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; }?