关于日期是存储成日期类型,还是字符串类型的有关问题

关于日期是存储成日期类型,还是字符串类型的问题
在数据库,日期数据是存储成日期类型,还是字符串类型好。如A表中有一个字段dateTime,类型是varchar(45),查询语句是select dateTime from A order by dateTime desc.测试过,执行后,其能正确的排序。其内部是否转换成日期类型,再进行排序操作?
这与将字段dateTime设置为Date类型,然后再执行查询语句。哪个的效率更好
------解决方案--------------------
引用:
在数据库,日期数据是存储成日期类型,还是字符串类型好。如A表中有一个字段dateTime,类型是varchar(45),查询语句是select dateTime from A order by dateTime desc.测试过,执行后,其能正确的排序。其内部是否转换成日期类型,再进行排序操作?
这与将字段dateTime设置为Date类型,然后再执行查询语句。哪个的效率更好

如果是varchar型,排序的时候是按照字符型排序的,并不会进行内部转换。之所以出现正确的排序结果只不过是按字符和日期排序的结果凑巧相同而已。
日期数据强烈建议选择日期类型。
------解决方案--------------------
当然不会内部转换了, 日期还是date型比较好
------解决方案--------------------
日期数据自然是选择日期类型的了,效率要好点的。
------解决方案--------------------
效率还是日期、时间型更好
不过要是想通用的话,还是字符型
------解决方案--------------------
要使用日期型。
原因:
输入时可免除格式检查,插库时会自动拒绝非法值。
数据来源多,可能各家格式不尽相同,只要用相应的格式,可以加入到同一个库。
可利用日期函数进行数据分析。如每周五16:00-20:00的数据。。。。。。。。。。
------解决方案--------------------
按标准来看,日期型还是保存成日期好,避免以后的转换问题。
如果可以按日期建成分区表,对于查询可能也会很发,具体要根据业务而定
------解决方案--------------------
我觉得还是选择date类型,一般我们在开发的时候javabean中对应数据的date字段设置为String类型。
向数据库添加的时候使用to_date('','HHHH-MM-DD hh24:mi:ss')或者to_date('','HHHH-MM-DD hh12:mi:ss');
而从数据库中读出来的时候,使用TO_CHAR(newdate,’yyyy-mm-dd’);