假如是日期时间以字串保存
优点:
效率快一点点
一些SQL可以少写一点
比较、Between...的where条件还是可以用
缺点:
一些日期类型的功能就不能用了
下面写的Oracle测试:
Drop Table TABLE1;
Drop Table TABLE2;
CREATE TABLE TABLE1 ( DATE1 VARCHAR2(30 BYTE) );
CREATE TABLE TABLE2 ( DATE1 TIMESTAMP(6) ) ;
BEGIN
FOR v_int IN 1..10000 LOOP
INSERT INTO TABLE2 (DATE1) VALUES (TO_TIMESTAMP('2017-06-24
09:59:10.000000000', 'YYYY-MM-DD HH24:MI:SS.FF'));
INSERT INTO TABLE1 (DATE1) VALUES ( '2017/06/24 09:59:10.000000000' );
END LOOP;
END LOOP;
COMMIT;
END;
/
https://i.imgur.com/bY9d9tJ.png
至于要不要使用,就看取舍了~~~
作者:
a47135 (金属史莱姆)
2017-11-05 20:20:00应该是以数字型态保存日期吧,文字很可能会有/ or -之类的脏东西
作者:
yyc1217 (somo)
2017-11-05 21:34:00我的话会转成timestamp再存 要转各种格式会更方便
存字串快那一咪咪带来各种隐性的风险 完全不划算吧...
日期在不同 sql server 转换会常出问题甚至同 sql server 不同版本,默认也会改。所以日期转字串处理很常见DateTime 含时间,占的空间没比较小。若只需日期,字串还比较不易出错并不是每种 sql server 都提供 Date 资料型态
作者:
senjor (哞哞)
2017-11-06 10:06:00存成13位 unixtime
作者:
kenvi (kenvi)
2017-11-07 08:55:00以前小弟也蛮常用字串处理日期时间格式, 格式&长度决定好就一直用了, 虽然觉得应该是用哪种数据库就要用对应的datetime格式, 但有时懒得处理不同程式语言的datetime lib所以就统一用时间字串格式了XD (不要学)