为什么银行日期格式都是yyyymmdd呢?有什么好处??
为什么银行日期格式都是yyyymmdd呢?有什么好处??
他们是不是把日期格式转为int存在表里了,因为int查询肯定比date快。
难道银行数据库的日期格式是int类型吗??
如果不是int类型,每次都要这样转换好麻烦啊,或SQL有没有yyyymmdd这种类型??
好像SQL只有三种时间类型,没有发现有yyyymmdd这种:
date
datetime
datetime2(7)
SELECT CONVERT(VARCHAR(8), GETDATE(), 112)
------解决方案--------------------yyyymmdd只是date的一种表现形式,你把表现形式和数据类型搞混了吧。
虽然没接触过银行数据库,但我认为一定是日期时间类型,不可能是int,更不可能是cha(8),不然,涉及日期有效性验证和日期运算,是转换为日期时间类型,还是自己根据历法规则实现?
int比date查询快的理论依据是什么?date内部形式是1个3字节的整型,距离0001-01-01的天数。
银行使用yyyymmdd表示,唯一的解释是省墨,别小看两个字符的用墨量,从大局考虑。
------解决方案--------------------一般还是用的常规的datetime类型存储日期,在打印的时候 转换CONVERT(VARCHAR(8), GETDATE(), 112)简写模式
------解决方案--------------------1 日期绝不是int形的
2 数据库中应该是日期格式,打印出来的是yyyymmdd格式的
------解决方案--------------------看什么系统了,以前给银行做内网系统,用的就是int,29991231这样的,但是核心系统一定要精确到很小的位数。
------解决方案--------------------看应用,如果你只是按日来算的话,完全可以使用int,但是要精确到时分秒就不行。
------解决方案--------------------楼主不要把日期时间的格式和数据存储类型搞混了。
光从YYYYMMDD这个格式上是看不出用哪种存储类型的。
有可能是DATATIME,也有可能用INT,在SQLite里只能用TEXT存呢。
关键看这个日期在业务需求中干什么用有没运算等。
------解决方案--------------------数据库里面肯定会记录下具体的时间的,对你来说不需要知道时间,只需要知道那天就行了, 所以你认为的int不靠谱
------解决方案--------------------这种方式一样可以的到:yyyymmdd
Select CONVERT(varchar(100), GETDATE(), 112)