Home > Database > Mysql Tutorial > body text

Oracle日期显示问题以及trunc方法的使用

WBOY
Release: 2016-06-07 17:40:18
Original
915 people have browsed it

我们先来假设这么一个场景,只要输入一个到月份的日期进入Oracle,比如2012年8月。但是输入进了Oracle,会发现oracle自动补了个1号变成了2012-8-1,这并不是我们

 

我们先来假设这么一个场景,只要输入一个到月份的日期进入Oracle,香港服务器租用,比如2012年8月。但是输入进了Oracle,会发现oracle自动补了个1号变成了2012-8-1,这并不是我们的本意。不要担心,这只是oracle的显示问题。当然我们需要在取出的时候进行处理。

 

比如需要找到2012年8月份的数据,我们假设该表的日期字段为mydate字段。

 

错误做法

where mydate =  to_char('2012.8','yyyy.mm')

这样只可以找出8.1号的数据

 

正确做法

and trunc(mydate,'mm')  =  to_date('2012.8','yyyy.mm')

将该字段阶段至月份,只比较到月份

 

 

当然trunc也有显示的问题,美国服务器,现在是2012.8.6

select trunc(sysdate,'mm') from dual;

结果 2012-8-1

自动补上了一个1

 

select trunc(sysdate,'yy) from dual;

结果 2012-1-1

更过分,美国服务器,自动补上了两个1

 

Oracle就是这样,喜欢帮你补1。当然这只是显示问题,操作时只要截取你需要的即可。

 

本文出自 “IT徐胖子的专栏” 博客,请务必保留此出处

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template