![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5ichR3cf52bjl2LcNXZnFWbp9CXt92YuUWelRXauYjM5cmbvlXZkVHavw1LcpDc0RHaiojIsJye.png)
<?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 . ')';
}