关于Oracle中用Varchar2(10)对日期字段保存的方案。
项目中的许多日期,只需要保存到年月日,出于开发的简单(减少to_char、to_date的转换),将日期字段定义为“varchar(10)”,格式为“YYYY-MM-DD”,由于页面中通过了日期控件及日期合法性校验,可以严格的日期输入的正确性。
项目提交时,受到了客户的质疑,认为不是常规的方式,请问各位的项目中,是否也有用varchar存数日期型的???
varchar存数日期型的优势:
1、读去数据到页面显示时,不需要to_char的转换。
2、页面数据保存到数据库时,也省去了to_date的转换。
varchar存数日期型依旧满足:
1、排序:字符串排序(格式固定)
2、区间查找:字符串区间查找(格式固定)
3、计算N日前等操作:to_date转换后即可操作
4、数据合法性检查:页面严格控制(无论是否用varchar均需要控制)