![](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 . ')';
}