Re: [討論] 把資料全存成字串的好處是?

作者: shps951015 (寶寶QQ)   2017-11-05 15:17:11
假如是日期時間以字串保存
優點:
效率快一點點
一些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再存 要轉各種格式會更方便
作者: kurtsgm   2017-11-05 22:28:00
存字串快那一咪咪帶來各種隱性的風險 完全不划算吧...
作者: cancelpc (阿吉)   2017-11-06 07:45:00
日期在不同 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 (不要學)

Links booklink

Contact Us: admin [ a t ] ucptt.com