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");
}

最新文章

  1. Visual Studio Code 1.0发布,支持中文在内9种语言
  2. 【iCore3 双核心板】例程二十八:FSMC实验——读写FPGA
  3. HDU 3078:Network(LCA之tarjan)
  4. python简单爬虫编写
  5. 大型网站都喜欢把js写在html中的真正原因
  6. QT TCP/IP
  7. PyQt中如何隐藏Menu
  8. a:focus{outline: none;} 如何去掉点击链接时周围的虚线框outline属性
  9. Maven模块化开发
  10. 从非标准的POST数据流中提取文件
  11. php 执行 命令行命令
  12. NX 栈不可执行的绕过方式--ROP链
  13. FastAdmin 插件刷新缓存出现 200 红色提示框解决 always_populate_raw_post_data
  14. Basic Auth
  15. params over length limit is 20
  16. mysql my.cnf优化
  17. django系列5.5--分组查询,聚合查询,F查询,Q查询,脚本中调用django环境
  18. vue的路由使用
  19. SVM 为什么要从原始问题变为对偶问题来求解
  20. Oracle SQL Developer出现错误 【ora-28002:the password will expire within 7 days】的解决办法

热门文章

  1. 【代码笔记】iOS-获得现在的周的日期
  2. iOS中的round/ceil/floorf函数略解
  3. C# 6.0新特性---语法糖
  4. Ambari server:无法显示内存,CPU等使用率
  5. java强引用、软引用、弱引用、虚引用
  6. js的encodeURIComponent与java的URLEncoder的区别
  7. DNS相关知识
  8. jquery选择器案例
  9. postman使用之一:安装启动篇
  10. uva 1354 Mobile Computing ——yhx