日期:2014-05-16  浏览次数:20798 次

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\')';
			}els