天天看点

sql server 模仿mysql的方法

sql server 模仿mysql的方法

<?php  

/** 

 * ============================================================================ 

 *    名称: 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时,返回的值 

function util_ifnull($check_value, $isnull_return)  

        $value_returned = ($isnull_return == '') ? 'isnull(' . $check_value . ',\'\')' : 'isnull(' . $check_value . ',' . $isnull_return . ')';  

        $value_returned = ($isnull_return == '') ? 'ifnull(' . $check_value . ',\'\')' : 'ifnull(' . $check_value . ',' . $isnull_return . ')';  

        $value_returned = ($isnull_return == '') ? 'nvl(' . $check_value . ',\'\')' : 'nvl(' . $check_value . ',' . $isnull_return . ')';  

 *    名称: util_lower 

 *  描述: 模拟mysql中lower() 

 *  参数: $value : 要改变的值 

function util_lower($lower_value)  

        $value_returned = 'lower(' . $lower_value . ')';  

 *    名称: util_top 

 *  描述: 模拟mssql中top 

 *  参数: $sql : 要执行的sql语句 

 *          $top_value : 取执行$sql所返回结果集的记录数 

function util_top($sql, $top_value)  

        $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;  

        $pos = strripos($sql, 'where');  

        $top_value++;  

        $sql = substr_replace($sql, 'where rownum <' . $top_value . ' and ', $pos, 5);  

 *    名称: util_date_format 

 *  描述: 模拟mssql中convert(date_type,datetime,style) 

 *  参数: $format_date : 要格式化的日期值 

 *   $format_type : 返回的类型 

 *      112 ------- yyyymmdd 

 *      111 ------- yyyy/mm/dd 

 *      120 ------- yyyy-mm-dd 

function util_date_format($format_date, $format_type = 112)  

        $value_returned = 'convert(char(10),' . $format_date . ',' . $format_type . ')';  

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

        }  

            $value_returned = 'to_date(' . $format_date . ',\'yyyymmdd\')';  

            $value_returned = 'to_date(' . $format_date . ',\'yyyy/mm/dd\')';  

            $value_returned = 'to_date(' . $format_date . ',\'yyyy-mm-dd\')';  

 * 名称: util_date_diff 

 * 描述: 模拟mssql中datediff() 

 * 参数: 

 * $datepart: 返回的差异类型 

 * day  ------  天数 

 * year  ------  年数 

 * month  ------  月数 

 * week  ------  周数 

 * hour  ------  小时 

 * minute  ------  分钟 

 * second  ------  秒数 

 * $startdate: 时间较小值 

 * $enddate: 时间较大值 

 * 作者: david 

function util_date_diff($datepart, $startdate, $enddate)  

        if ($datepart == 'day') {  

            $value_returned = 'datediff(day,' . $startdate . ',' . $enddate . ')';  

            $value_returned = '(to_days(' . $enddate . ')-to_days(' . $startdate . '))';  

        //oracle;  

 * 名称: util_length 

 * 描述: 模拟mysql中length() 

 * 参数:  返回的差异类型 

function util_length($value)  

        $value_returned = 'len(' . $value . ')';  

        $value_returned = 'length(' . $value . ')';  

 * 名称: util_rownum 

 * 描述: 模拟mssql中row_number() 

function util_rownum($value)  

        $value_returned = ' row_number() over(order by sum(' . $value . ') desc)';  

        $value_returned = ' rownum()';  

 * 名称: util_dbo 

 * 描述: mssql时用户函数需要加上dbo前缀。 

 * 参数: $value:用户函数名称 

function util_dbo($value)  

        $value_returned = 'dbo.' . $value;  

        $value_returned = $value;  

 * 名称: util_last_insert_id 

 * 描述: 模拟mysql函数last_insert_id() 

function util_last_insert_id()  

        $value_returned = '@@identity';  

        $value_returned = 'last_insert_id()';  

 * 名称: util_date_add 

 * 描述: 模拟mysql函数date_add() 

$datepart: 新增时间类型 

day  ------  天数 

year  ------  年数 

month  ------  月数 

week  ------  周数 

hour  ------  小时 

minute  ------  分钟 

second  ------  秒数 

$startdate:起始日期 

$value: 新增时间数值 

function util_date_add($datepart, $startdate, $value)  

        $value_returned = 'dateadd(' . $datepart . ',' . $value . ',' . $startdate . ')';  

        $value_returned = 'date_add(' . $startdate . ',interval ' . $value . ' ' . $datepart . ')';  

}