天天看點

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

}