`
hudeyong926
  • 浏览: 2034936 次
  • 来自: 武汉
社区版块
存档分类
最新评论

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时,返回的值
 *  作者: 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;
}

 

分享到:
评论

相关推荐

    jsp 模仿淘宝商城源码

    模仿淘宝商城 网站源码一般都是由ASP/PHP/ASP.net/JSP等语言开发完成,同时配合ACCESS/sql server/mysql等数据库;一般都拥有完整的后台管理...针对SQL SERVER或MYSQL数据库,有可能需要服务器管理员帮忙导入到数据库。

    模仿管理系统实现java代码+sql.zip

    在本项目中,"模仿管理系统实现java代码+sql.zip" 是一个包含Java编程语言和SQL数据库操作的示例代码库,用于构建一个简单的企业管理系统。这个系统具备多种关键功能,如用户验证、权限管理、员工及部门管理以及事务...

    SQL建表范例

    10. **自增属性**:在`INT`类型的列上,可以使用`AUTO_INCREMENT`(MySQL)或`IDENTITY`(SQL Server)让系统自动为新行生成唯一的递增整数。 11. **注释**:在创建表时,可以使用`COMMENT`来添加对表或列的描述,...

    mymymysql:一个简单的 SQL Server..

    "mymymysql"项目同样使用了C++,这可能意味着它试图模仿MySQL的核心功能。 - SQL Server则由Microsoft开发,主要用C++和C#构建,支持更复杂的业务逻辑和集成开发环境。 2. **开源与商业**: - MySQL是开源的,这...

    mysql 客户端,界面友好

    mysql 的一个很好用的客户端,模仿 sqlserver 的客户端的界面。

    asp.net 的mysql数据库操作类

    MySQLHelper 类模仿了SQLHelper的设计,简化了执行SQL语句的过程,包括执行简单的SQL查询、存储过程以及批处理操作。这个类通常包含以下几个核心方法: 1. ExecuteNonQuery:用于执行非查询操作,如INSERT、UPDATE...

    create-table.rar_Delphi Create Tab_SQL 表_Table_delphi create tab

    本主题聚焦于如何使用Delphi与SQL数据库交互,特别是动态创建数据表,模仿SQL Server的操作方式。动态创建数据表是数据库设计过程中的一个重要环节,它允许开发者根据需求在运行时构建数据库结构。 首先,我们需要...

    仿世纪佳缘交友网源代码(ASP+SQL2000)

    【标题】"仿世纪佳缘交友网源代码(ASP+SQL2000)"是一个针对开发者和学习者提供的网络交友平台的源代码实现,它基于经典的ASP(Active Server Pages)技术,结合SQL Server 2000数据库系统,用于构建类似世纪佳缘这样...

    仿世纪佳缘网ASP+SQL

    SQL数据库,如Microsoft SQL Server或MySQL,用于存储网站所有必要的信息。在"仿世纪佳缘网ASP+SQL"项目中,数据库设计至关重要,因为它需要存储用户账户、用户资料、匹配条件、聊天记录等多种类型的数据。SQL语句...

    SQL 2000课程设计多功能在线报价系统

    《SQL 2000课程设计:多功能在线报价系统详解》 在信息技术日新月异的今天,数据库管理...通过深入分析并模仿这个案例,读者可以更好地掌握SQL Server 2000在企业级应用中的应用,为今后的数据库项目打下坚实基础。

    模仿电影网站

    【模仿电影网站】是一个非常适合初学者的项目,它旨在帮助学习者深入了解JSP(JavaServer Pages)和IBATIS框架的使用。这个项目的核心是构建一个功能完备的在线电影数据库,用户可以浏览电影信息,进行搜索和筛选。...

    非常好用SQL语言学习器

    7. 支持多种数据库系统:一个全面的SQL学习器可能兼容多种数据库管理系统,如MySQL、Oracle、SQL Server、PostgreSQL等,让学习者能在不同的数据库环境中实践。 8. 用户友好的界面:好的学习器应具有直观易用的界面...

    Delphi编写的Sql数据库浏览器(仿企业管理器)..rar

    ADO是微软提供的数据访问接口,它支持多种数据库,包括SQL Server、Oracle和MySQL等。通过设置ADO连接字符串,开发者可以在Delphi程序中建立到目标数据库的连接,并使用TADOQuery、TADOTable等组件进行数据查询和...

    asprunnerpro

    通过该软件,用户可以编写一套APS脚本语言,可以用于修改网页界面、修改数据库,对网站进行相关数据处理等,可以说ASPRunner Pro 就是一种原始码的编写工具,它可以有效的模仿SQL Server、DB2、MySQL、FileMaker、MS...

    jsp tomcat mysql smartupload简单网页

    【标题】"jsp tomcat mysql smartupload简单网页"是一个基于Java Web技术的入门级项目,主要涉及了几个关键的技术组件,包括JSP(JavaServer Pages)、Tomcat服务器、MySQL数据库以及SmartUpload库。这个项目旨在...

    C#仿QQ通信软件 SQL数据库

    常见的SQL数据库有MySQL、SQL Server、SQLite等。考虑到桌面应用的便携性和轻量级,可能会选择SQLite。数据库设计涉及表的创建、字段定义、索引优化以及事务处理。例如,需要创建用户表(User)存储用户名、密码,...

    asp留言板 模仿qq留言板 实现留言管理

    然后,这些数据会被保存到数据库中,常见的数据库有Access、SQL Server或MySQL。 3. **显示留言**:ASP页面可以连接数据库,读取并显示所有的留言。这通常涉及到SQL查询语句的编写,以及如何将查询结果转化为HTML...

    Asp Access 查询分析器.rar

    1. **用户界面**:模仿SQL Server 2000查询分析器的界面设计,提供一个友好的交互空间,用户可以在这里输入SQL查询语句,例如SELECT、INSERT、UPDATE、DELETE等。 2. **连接管理**:通过ASP代码建立和管理与Access...

    仿淘宝网多用户网络商城购物系统源码sql正式版

    可能使用了如MySQL或SQL Server这样的数据库管理系统。 2. **多用户系统**:此系统支持多个商家注册并管理自己的店铺,每个商家可以上传商品、设置价格、处理订单等。同时,它也允许无数的用户注册,创建个人账户,...

    BS实现树形结构(jsp+mysql数据库+设计文档)

    本项目“BS实现树形结构(jsp+mysql数据库+设计文档)”提供了一个完整的解决方案,包括源码、开发文档以及SQL Server数据库,方便开发者在MyEclipse环境中直接导入使用。 首先,我们来探讨树形结构在Web开发中的应用...

Global site tag (gtag.js) - Google Analytics