mysql中now()函数的使用,还有oracle的sysdate

在需求中如果系统中药添加当前操作的时间那么很简单的一个操作在写sql的时候直接在这个字段对应的位置写上now()函数就可以了,这样就少些了很多代码,尤其是在在用jdbc时写的时候,可以少写一些关于占位符的代码,但是这样做是有一个隐含的前提的是数据库和服务器是在同一个机器上的,如果不在同一台机器上,那么这样写就是一个坑啊,我觉得没有经验,没有掉进过坑的人就会这样写,比如我,偷懒就会这样写.等到用到这个时间来比较或者作为业务逻辑的判断依据时,这个坑就出现了

lz在定位问题做业务的时候就遇到了,当时,服务器在lz的电脑上,数据库在远端,因为业务需要就把时间调到未来的一个时间点,然后开始做,但是后来经过了1周左右,偶然发现了一个表用的时间竟然时当前的真是时间,我就有了这样的猜测,应该有一个程序员用了sysdate字段.尽管没有明显找到,但是应该是用的,不然不会取到真实的时间啊.尤其一些需要远程调试的项目,同事对于编码规范,我觉得sql的编码规范也要把这一条加上去.

lz以前不懂也做过这样的事情,现在只能提醒大家不要这样做,然后改掉自己最近这样写的代码.

建议用java生成new一个时间对象,如果用的是jdbc直接拼在sql里,可以不要用占位符.

//在dao中这样写
member(name,pw,register_time)value(?,?,‘"+DbAssitor.sdfyyyyMMddHHmmss.format(new Date())+"‘);";

//数据库助手类定义一个sdf类
public class DbAssitor
{
    /** 数据库相关操作中操作结果是没有影响行数 ***/
    public static int NO_AFFECT_ROW = 0;
    public static String sdfyyyyMMddHHmmss_ = "yyyy-MM-dd HH:mm:ss";
    public static SimpleDateFormat sdfyyyyMMddHHmmss = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
时间: 2024-09-27 00:10:07

mysql中now()函数的使用,还有oracle的sysdate的相关文章

Mysql中的函数

阅读目录 什么是函数 与存储过程的区别 mysql自带函数 自定义函数 什么是函数 mysql中的函数与存储过程类似,都是一组SQL集: 与存储过程的区别 函数可以return值,存储过程不能直接return,但是有输出参数可以输出多个返回值: 函数可以嵌入到sql语句中使用,而存储过程不能: 函数一般用于实现较简单的有针对性的功能(如求绝对值.返回当前时间等),存储过程用于实现复杂的功能(如复杂的业务逻辑功能): mysql自带函数 mysql本身已经实现了一些常见的函数,如数学函数.字符串函

MySQL中concat函数(连接字符串)

MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串.一个数字参数被转化为与之相等的二进制字符串格式:若要避免这种情况,可使用显式类型 cast, 例如:SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQL的con

MySQL中group_concat函数 --- 很有用的一个用来查询出所有group by 分组后所有 同组内的 内容

本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 mysql> select * from aa; +------+------+ | id| name | +------+------+ |1 |

MySQL中ROW_NUMBER()函数的替换实现

SELECT t.*, @RowNum := @RowNum + 1 AS RowNum FROM t, (SELECT @RowNum := 0) AS myRows MySQL中没有ROW_NUMBER()函数,可以用以上代码替换. MySQL中ROW_NUMBER()函数的替换实现

MySQL中concat函数

使用方法:CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串.一个数字参数被转化为与之相等的二进制字符串格式:若要避免这种情况,可使用显式类型 cast, 例如:SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQL的concat函数可以连接一个或者多

MySQL中group_concat函数-和group by配合使用

MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 Sql代码 收藏代码 select * from aa; +------+------+ | id| name | +------+------+ |1 | 10| |1 | 20| |1 | 20| |2 | 20| |3 | 200 | |3 | 500 | +------+

mysql中concat函数的使用相关总结

concat(str1,str2) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. mysql> select concat('11','22','33'); +------------------------+ | concat('11','22','33') | +------------------------+ | 112233 | +------------------------+ 1 row in set (0.00 sec) MySQL的co

MySQL中的函数索引(Generated Column)及一次SQL优化

MySQL 中是没有 Oracle 的函数索引功能的,把 MySQL 的 Generated Column 称为"函数索引"并不准确,但可以和函数索引达到同样的效果,也有人把这个特性称为"衍生列". Generated Column 是什么 Generated Column 的值是根据其定义的表达式所计算而来的,下面使用官方文档中的例子做个简单介绍. 有一张表存储直角三角形的三条边长,大家都知道,根据直角三角形的边长公式,斜边的长度可以通过另外两条边长计算得到,这样

mysql中INSTR函数的用法

INSTR(字段名, 字符串) 这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始) SELECT * FROM tblTopic ORDER BY INSTR( topicTitle, 'ha' ) > 0 DESC SELECT INSTR( topicTitle, 'ha' ) FROM tblTopic mysql中使用instr配合IN排序 将instr结果作为一列,按其排序 select id,1 from world_guide where