2017-05-25 59 views
0

我想将一些日期存储到一个表中,为什么我应该使用日期函数来传递日期而不是插入日期,简单地说就是文本格式。在SQLite中转换文本的好处

CREATE TABLE dates (
Birthday Date /* date standart format YYYY-MM-DD */ 
); 

INSERT INTO dates (Birthday) 
VALUES (date('2005-12-30')); 

而不是

CREATE TABLE dates (
Birthday text  
); 

INSERT INTO dates (Birthday) 
VALUES ('2005-12-30'); 
+0

您可以使用字符串。你为什么问这个问题? –

+0

我在PLSQL中学会插入一个我应该使用TO_DATE的日期。我试图理解当你使用一个字符串时该函数的目的是什么。 –

+0

Oracle具有非常神秘的默认日期格式。在Oracle中,你应该使用'DATE'2005-12-30''。事实上,'DATE'是ANSI标准,所以应该在所有支持的数据库中使用 - 但YYYY-MM-DD的字符串是常用的,并已被大量的数据库很长一段时间的支持。 –

回答

2

没有DATE data type

声明一列日期恰巧使用数字affinity,但是当你存储在这样的列日期字符串不要紧。

SQLite的date() function可以将其他日期格式转换为yyyy-mm-dd字符串,并应用修饰符。
如果输入已经在yyyy-mm-dd格式的字符串,如果你不使用任何修饰,那么函数的结果是保证是一样的输入,以及函数调用是毫无意义的。

-2

它是通过将其存储在文本格式完全可行的。但是,您将受限于订购和过滤列作为文本而不是日期。意思是,如果您需要按日期排序或过滤数据,我强烈建议您使用其中一种日期/时间格式。此外DBMS可以优化查询,知道它是一个日期...