1. 今天客户让我书写 sql.(今年 1 月份到现在发布了多少条信息)
每每遇到日期我就懵逼, 或者当时遇到问题当时百度. 过后又忘记了, 又继续新问题, 今天来总结下
2. 日期转换格式, to_char 和 to_date
3. 本身时间字段是 date 类型, 那么操作大于 2017-01-01 的发布信息, 查询略过, 条件是 create_date> to_date('2017-1-1', 'yyyy-MM-dd'), 注意可以过滤到时分秒
4. 本身时间字段是 varchar 字段, 那么操作大于 2017-1-1 的发布信息, 条件就要多转一次, 本身字段也要处理到 to_date, 如下 sql 条件 to_date(substr(show_date,1,10),'yyyy-mm-dd')>= to_date('2017-1-1', 'yyyy-MM-dd'), 请注意, 本身这个 varchar 时间字段的完整是到时分秒, 那么转的时候也要到时分秒, 否则会报错: 提示 ORA-01830: 日期格式图片在转换整个输入字符串之前结束 错误
这个错误的意思就是字段是到时分秒, 转换的时候却只到了年月日, 所以会报错! 切记. 这时可以加上时分秒, 也可以截取处理, substr 1 到 10 的索引就是年月日的处理了;
5. 无论日期的比较, 都要转成 to-date, 否则无法比较出大于日期的条数,
6. 对方是什么字段什么类型, 就要按照格式进行对应的转换处理;
7. 另外日期格式转换在 java 里有个 simpleDateFormat 处理, 创建对象可以指定日期格式; 有 parse 和 format 方法, 分别是日期和 string 之间的转换; 如下所示:
- SimpleDateFormat sdfDateFormat =new SimpleDateFormat("yyyyMMddHHmm");
- String moment=sdfDateFormat.format(new Date());
来源: http://www.bubuko.com/infodetail-2600824.html