工作随笔——贰(关于字符串非空判断与数据库中日期时间问题)

原创 2016年08月31日 13:24:45

问题描述:

1、判断某字符串非空问题。

2、日期比较问题。


解决步骤:

问题1:

1、原始判断语句:str!=null,发现没用,程序依旧会走向判断体而不会跳过。

2、改变:str.isEmpty()/str.length<=0/"".equals(str)均会报错:undefind,究其原因为在页面初始化时此语句即被使用而str在页面初始化时不会被定义,null.方法会报错。

3、改变:两层判断,第一层:str!=null||str=="",第二层:str.length<=0.达到效果。但是,可以发现,在第一层的两个比较是错误的,真正起作用的是第二层。但是由于上次的尝试,知道单独使用str.length会报错undefind,此时很疑惑。

4、改变:第一层的条件写错了,改:str!=null || str!="",但是发现在第二层的判断时又出现了undefind报错。

5、根据条件234,将判断尝试改写为:!(str==null || str=="")发现达到效果。


问题2:

1、数据库插入语句中set time = now()

2、但是在数据库中发现time字段中均为时间,而无日期。

3、查看time字段类型,为time,修改为date之后变为日期(同时也有datetime类型,但是我只需要日期所以改成了date)

4、这样修改的坏处在于之前所有的数据均变成了今天的日期,但之前并无数据可以恢复,所以也只能这样了。


问题反思:

问题1:这个问题的实质在于字符串判断非空,纠结这么长的原因在于对“字符串为空”的认知是str==null,就理所当然地认为“字符串非空”为str!=null,事实上这个是错的。

问题2:应该养成经常看数据库的习惯,对于有问题的病态的字段应及时排查。


技术获取:

1、字符串非空:!str==null

2、未初始化的字符串会在str==xxx中被初始化,而str!=xxx并不会初始化str。

3、连接符||采用从左向右最快判断方式,即优先判断连接符左边的条件,如条件为true则直接将整个判真,而不会再去判断连接符右边的条件。所以str==xxx||str.length<=0不会报错undefind而str.length<=0||str==xxx会报错。

4、数据库有time类型(仅时间-hh:mm:ss)、date类型(仅日期YYYY-MM-DD)、datetime类型(日期时间YYYY-MM-DD hh:mm:ss)

5、MYSQL插入时间的三种类型:当前日期时间now();当前日期curdate();当前时间curtime();格式同上。

6、MYSQL字段类型如果从time改变为date则所有数据会变为当前日期(因为之前没有存日期数据)。



VC++获得当前系统日期和时间问题汇总

Ⅰ.VC中得到当前系统的时间和日期: 得到时间的方法一般都是得到从1900年0点0分到现在的秒数,然后转为年月日时分秒的形式得到当前的时间(时分秒)。主要方法如下: 1)使用CRT函数 ...
  • taifei
  • taifei
  • 2017年02月03日 16:26
  • 1293

VC++获得当前系统日期和时间问题汇总

Ⅰ.VC中得到当前系统的时间和日期: 得到时间的方法一般都是得到从1900年0点0分到现在的秒数,然后转为年月日时分秒的形式得到当前的时间(时分秒)。主要方法如下: 1)使用CRT函数 ...
  • cjjwwss
  • cjjwwss
  • 2014年03月13日 09:16
  • 248

日期及时间问题-日历问题

最近博主参加了学校的一个小测试,其中有个日历问题说当前为某年某月某日星期几,让你输入一个数n,算出n天后是多少年多少月多少日星期几; 完了之后博主当时并没有做出来,因为自己的方法还是比较复杂,代码也比...

【算法】最长工作时间问题

#include #include struct worker { int startTime; int endTime; int mark; }; int main...

用websocket做心跳检测——解决微信iOS端网页无法监听浏览时间问题

在很多购物网站中,特别是在一些产品购买浏览页面中,我们需要抓取用户浏览的一些行为。比如说某个页面的用户浏览时间,分享的次数,以便能给销售团队提供用户行为的信息,方便以后的销售策略的调整。本文提出了在微...

帮助类解决日期时间问题(包含从Mysql中查出来的数据后面多了个0的问题,以友好的方式显示时间的问题)

1.以友好的方式显示时间:几天前啦,几小时前啦,几分钟前啦等等 2格式化字符串,解决从MySql中查出来的数据后面多了0的问题 ...

MYSQL数据库(四) 数据插入、空值和非空判断、自动排序、主键约束、唯一约束

Mysql插入数据 插入数据:INSERT [INTO] tab_name[(col_name,…)] VALUES(val,…) 上一篇创建了一个数据库mm1,流程如下:首先我们创建了一个数据表...

判断非空的抖动问题

  • 2016年01月06日 11:51
  • 112KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:工作随笔——贰(关于字符串非空判断与数据库中日期时间问题)
举报原因:
原因补充:

(最多只允许输入30个字)