文档章节

今天的时间逻辑以及fix 一个 mysql 程序员错误的习惯

疯狂的兔子
 疯狂的兔子
发布于 2015/04/21 10:43
字数 457
阅读 25
收藏 1

一个很有趣的SQL

SELECT  count(1) from b2c_order  
 WHERE
 b2c_order.create_time >= '2012-09-03 00:00:00' AND b2c_order.create_time <= '2012-09-03 23:59:59';

这个SQL不细看感觉不出来问题,可是细看一下,觉得那么别扭,2012-12-03 23:59:59 这个是什么意思?难道,作者想用这个方法来计算当天么?

"今天"的逻辑

询问了一下开发,确证这是一个统计,统计当天的交易数,那么这里就带来了一个问题,“今天”在数学上或者在程序里,定义应该是怎样的?
下面的逻辑:

 >= '2012-09-03 00:00:00'  <= '2012-09-03 23:59:59'

能否表示某一天?

显然,上面的逻辑是有问题的,因为,23:59:59 之后,还有一秒钟是属于今天的。一秒钟,对计算机来说,简直像永远那么漫长,能发生的事情和故事实在是太多了,所以,这个逻辑一定是有问题的,因为它少了一秒,那么应该如何表示今天呢?

一秒的作用

当年利森把巴林银行搞垮,只用了十几毫秒。so,一秒的作用,更关键的是会让人将来在对账、在统计的时候,发生莫名奇妙的事情,而要耗费巨大的精力来检查和修理。

"今天“的正确逻辑

实际上,今天的正确逻辑,无非是这么一句话:”大于等于今天的开始,小于明天的开始“,我们只要利用好开闭区间,就可以很好的、无漏洞的表示”今天“,所以,我只要把逻辑改成下面这样:

 >= '2012-09-03 00:00:00'  < '2012-09-04 00:00:00'

就正确无误了!


© 著作权归作者所有

共有 人打赏支持
疯狂的兔子
粉丝 34
博文 178
码字总数 101541
作品 0
北京
后端工程师
Discuz 7.2坑爹集锦-PHP篇 update 20120525

Discuz 7.2坑爹集锦-PHP篇 ucc代表uc_client目录 ucs代表uc_server目录 类型: 代码风格 坑爹指数: ☆ 点评: DZ代码不错,不过其代码风格对于维护来说比较痛苦。 本来应该尽量避免在判断中...

mark35
2012/01/11
0
23
程序员们注意了,这4个生活习惯很容易出卖你的身份

大家都知道程序员做事是非常有逻辑的,在日常生活中就能体现的到,不过有的时候过于追求逻辑化也会是生活失去乐趣,不是有这样一个例子嘛,本来是一道趣味题,问程序员结果就不一样,就是经常...

qq_40433465
05/07
0
0
程序员你为什么这么累【续】:编码习惯之参数校验和国际化规范

程序员你为什么这么累【续】:编码习惯之参数校验和国际化规范 程序猿DD | 博客2017-09-097 阅读 校验参数编码国际化程序员 导读: 程序员你为什么这么累? 我的编码习惯 - 接口定义 我的编码...

程序猿DD | 博客
2017/09/09
0
0
只有程序员才有的12个习惯, 占了一半以上才是真程序员!

程序员的日常通常是写代码,看别人写的代码,改别人写的代码。 当一个程序员是什么样的一种体验?领着高薪、生活滋润这是自然的。 程序员是比较富有的一个群体,却很少炫富。 程序员的话不多,...

你的社交帐号昵
06/04
0
0
[ios学习]零基础学习iOS开发如何分配时间

在培训期间,学生的时间应该如何分配 学生在学习期间的主要工作时间分配 9:00~ 9:30,认真听同学的学习阶段中的分享,俗话说的好"三人行,必有我师"; 9:30~ 18:00,认真听老师的课堂上课,并且...

浩浩老师
2015/09/15
95
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
47分钟前
4
1
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
57分钟前
1
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
1
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
1
0
麒麟AI首席科学家现世

8月31日,华为发布了新一代顶级人工智能手机芯片麒麟980,成为全球首款7nm工艺手机芯片,AI方面也实现飞跃,支持人脸识别、物体识别、物体检测、图像分割、智能翻译等。 虽然如今人人都在热议...

问题终结者
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部