作者shps951015 (宝宝QQ)
看板Soft_Job
标题Re: [讨论] 把资料全存成字串的好处是?
时间Sun Nov 5 15:17:11 2017
假如是日期时间以字串保存
优点:
效率快一点点
一些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
至於要不要使用,就看取舍了~~~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 43.229.116.218
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1509866234.A.75B.html
※ 编辑: shps951015 (14.217.202.133), 11/05/2017 15:21:44
1F:推 a47135: 应该是以数字型态保存日期吧,文字很可能会有/ or -之类的 11/05 20:20
2F:→ a47135: 脏东西 11/05 20:20
3F:→ yyc1217: 我的话会转成timestamp再存 要转各种格式会更方便 11/05 21:34
4F:→ kurtsgm: 存字串快那一咪咪带来各种隐性的风险 完全不划算吧... 11/05 22:28
5F:推 cancelpc: 日期在不同 sql server 转换会常出问题 11/06 07:45
6F:推 cancelpc: 甚至同 sql server 不同版本,预设也会改。所以日期转字 11/06 07:50
7F:→ cancelpc: 串处理很常见 11/06 07:50
8F:→ cancelpc: DateTime 含时间,占的空间没比较小。若只需日期,字串 11/06 07:52
9F:→ cancelpc: 还比较不易出错 11/06 07:52
10F:→ cancelpc: 并不是每种 sql server 都提供 Date 资料型态 11/06 07:54
11F:推 senjor: 存成13位 unixtime 11/06 10:06
12F:推 kenvi: 以前小弟也蛮常用字串处理日期时间格式, 格式&长度决定好 11/07 08:55
13F:→ kenvi: 就一直用了, 虽然觉得应该是用哪种资料库就要用对应的 11/07 08:56
14F:→ kenvi: datetime格式, 但有时懒得处理不同程式语言的datetime lib 11/07 08:57
15F:→ kenvi: 所以就统一用时间字串格式了XD (不要学) 11/07 08:57