- <?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时,返回的值
- * 作者: 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\')';
- } elseif ($format_type == 120) {
- $value_returned = 'to_date(' . $format_date . ',\'yyyy-mm-dd\')';
- }
- }
- return $value_returned;
- }
- /**
- * ============================================================================
- * 名称: util_date_diff
- * 描述: 模拟mssql中datediff()
- * 参数:
- * $datepart: 返回的差异类型
- * day ------ 天数
- * year ------ 年数
- * month ------ 月数
- * week ------ 周数
- * hour ------ 小时
- * minute ------ 分钟
- * second ------ 秒数
- * $startdate: 时间较小值
- * $enddate: 时间较大值
- * 作者: david
- * ============================================================================
- */
- function util_date_diff($datepart, $startdate, $enddate)
- {
- if ($this->config['db_dsn']['phptype'] == 'mssql') {
- if ($datepart == 'day') {
- $value_returned = 'datediff(day,' . $startdate . ',' . $enddate . ')';
- }
- } elseif ($this->config['db_dsn']['phptype'] = 'mysql') {
- if ($datepart == 'day') {
- $value_returned = '(to_days(' . $enddate . ')-to_days(' . $startdate . '))';
- }
- } else {
- //Oracle;
- }
- return $value_returned;
- }
- /**
- * ============================================================================
- * 名称: util_length
- * 描述: 模拟mysql中length()
- * 参数: 返回的差异类型
- * 作者: david
- * ============================================================================
- */
- function util_length($value)
- {
- if ($this->config['db_dsn']['phptype'] == 'mssql') {
- $value_returned = 'len(' . $value . ')';
- } elseif ($this->config['db_dsn']['phptype'] = 'mysql') {
- $value_returned = 'length(' . $value . ')';
- } else {
- //Oracle;
- }
- return $value_returned;
- }
- /**
- * ============================================================================
- * 名称: util_RowNum
- * 描述: 模拟mssql中ROW_NUMBER()
- * 参数:
- * 作者: david
- * ============================================================================
- */
- function util_RowNum($value)
- {
- if ($this->config['db_dsn']['phptype'] == 'mssql') {
- $value_returned = ' ROW_NUMBER() OVER(ORDER BY sum(' . $value . ') DESC)';
- } elseif ($this->config['db_dsn']['phptype'] = 'mysql') {
- $value_returned = ' RowNum()';
- } else {
- //Oracle;
- }
- return $value_returned;
- }
- /**
- * ============================================================================
- * 名称: util_dbo
- * 描述: mssql时用户函数需要加上dbo前缀。
- * 参数: $value:用户函数名称
- * 作者: david
- * ============================================================================
- */
- function util_dbo($value)
- {
- if ($this->config['db_dsn']['phptype'] == 'mssql') {
- $value_returned = 'dbo.' . $value;
- } elseif ($this->config['db_dsn']['phptype'] = 'mysql') {
- $value_returned = $value;
- } else {
- //Oracle;
- }
- return $value_returned;
- }
- /**
- * ============================================================================
- * 名称: util_last_insert_id
- * 描述: 模拟mysql函数last_insert_id()
- * 作者: david
- * ============================================================================
- */
- function util_last_insert_id()
- {
- if ($this->config['db_dsn']['phptype'] == 'mssql') {
- $value_returned = '@@IDENTITY';
- } elseif ($this->config['db_dsn']['phptype'] = 'mysql') {
- $value_returned = 'last_insert_id()';
- } else {
- //Oracle;
- }
- return $value_returned;
- }
- /**
- * ============================================================================
- * 名称: util_date_add
- * 描述: 模拟mysql函数date_add()
- * 参数:
- $datepart: 新增时间类型
- day ------ 天数
- year ------ 年数
- month ------ 月数
- week ------ 周数
- hour ------ 小时
- minute ------ 分钟
- second ------ 秒数
- $startdate:起始日期
- $value: 新增时间数值
- * 作者: david
- * ============================================================================
- */
- function util_date_add($datepart, $startdate, $value)
- {
- if ($this->config['db_dsn']['phptype'] == 'mssql') {
- $value_returned = 'dateadd(' . $datepart . ',' . $value . ',' . $startdate . ')';
- } elseif ($this->config['db_dsn']['phptype'] = 'mysql') {
- $value_returned = 'date_add(' . $startdate . ',interval ' . $value . ' ' . $datepart . ')';
- } else {
- //Oracle;
- }
- return $value_returned;
- }
sql server 模仿mysql的方法
最新推荐文章于 2024-09-23 14:16:45 发布