oracle trunc()函数关于日期和时间,需要详细解答和举例?

[复制链接]
查看11 | 回复4 | 2011-9-10 12:42:28 | 显示全部楼层 |阅读模式
回复

使用道具 举报

千问 | 2011-9-10 12:42:28 | 显示全部楼层
以下SQL执行于2010-10-1722点多这个样子。不知道你看了例子以后,能不能明白。altersessionsetnls_date_format=\'YYYY-MM-DDHH24:MI:SS\';Sessionaltered.SQLSELECT\'Year\'AStruncType,TRUNC(SYSDATE,\'YYYY\')FROMDUAL2UNIONALL3SELECT\'Quarter\'AStruncType,TRUNC(SYSDATE,\'Q\')FROMDUAL4UNIONALL5SELECT\'Month\'AStruncType,TRUNC(SYSDATE,\'MM\')FROMDUAL6UNIONALL7SELECT\'Week\'AStruncType,TRUNC(SYSDATE,\'W\')FROMDUAL8UNIONALL9SELECT\'Day\'AStruncType,TRUNC(SYSDATE,\'D\')FROMDUAL10UNIONALL11SELECT\'Hour\'AStruncType,TRUNC(SYSDATE,\'HH\')FROMDUAL;TRUNCTYPETRUNC(SYSDATE,\'YYYY---------------------------------Year2010-01-0100:00:00Quarter2010-10-0100:00:00Month2010-10-0100:00:00Week2010-10-1500:00:00Day2010-10-1700:00:00Hour2010-10-1722:00:006rowsselected.
回复

使用道具 举报

千问 | 2011-9-10 12:42:28 | 显示全部楼层
TruncFunction(withdates)InOracle/PLSQL,thetruncfunctionreturnsadatetruncatedtoaspecificunitofmeasure.oracle中,trunc函数返回一个按照特定计量单位截取后的date值Thesyntaxforthetruncfunctionis:语法如下:trunc(dat1e,[format])da1teisthedatetotruncate.da1te是要截断的dateformatistheunitofmeasuretoapplyfortruncating.Iftheformatparameterisomitted,thetruncfunctionwilltruncatethedatetothedayvalue,sothatanyhours,minutes,orsecondswillbetruncatedoff.format是截取时依据的计量单位(类似于数字中的精度)。如果format省略,date1就返回当天的日期值,即只保留日期,时间为0:00:00Belowarethevalidformatparameters:以下是合法的参数值:UnitValidformatparametersYear】SYYYY,YYYY,YEAR,SYEAR,YYY,YY,YISOYear】IYYY,IY,IQuarter】QMonth】MONTH,MON,MM,RMWeek】WWIW】IWW】WDay】DDD,DD,JStartdayoftheweek】DAY,DY,DHour】HH,HH12,HH24Minute】MIAppliesTo:Oracle8i,Oracle9i,Oracle10g,Oracle11gForexample:trunc(to_date(\'22-AUG-03\'),\'YEAR\')wouldreturn\'01-JAN-03\'trunc(to_date(\'22-AUG-03\'),\'Q\')wouldreturn\'01-JUL-03\'trunc(to_date(\'22-AUG-03\'),\'MONTH\')wouldreturn\'01-AUG-03\'trunc(to_date(\'22-AUG-03\'),\'DDD\')wouldreturn\'22-AUG-03\'trunc(to_date(\'22-AUG-03\'),\'DAY\')wouldreturn\'17-AUG-03\'
回复

使用道具 举报

千问 | 2011-9-10 12:42:28 | 显示全部楼层
TRUNC()函数分两种1.TRUNC(fordates)TRUNC函数为指定元素而截去的日期值。其具体的语法格式如下:TRUNC(date[,fmt])其中:date一个日期值fmt日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去下面是该函数的使用情况:TRUNC(TO_DATE(’24-Nov-199908:00pm’,’dd-mon-yyyyhh:miam’))=’24-Nov-199912:00:00am’TRUNC(TO_DATE(’24-Nov-199908:37pm’,’dd-mon-yyyyhh:miam’,’hh’))=’24-Nov-199908:00:00am’2.TRUNC(fornumber)TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。其具体的语法格式如下TRUNC(number[,decimals])其中:number待做截取处理的数值decimals指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分下面是该函数的使用情况:TRUNC(89.985,2)=89.98TRUNC(89.985)=89TRUNC(89.985,-1)=80注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。
回复

使用道具 举报

千问 | 2011-9-10 12:42:28 | 显示全部楼层
你提到的这个问题我以前遇到过,后来解决了。建议你去北风网看一下他们推出的:Oracle11g最佳培训教程(王二暖Oracle11g教室\\10年经验毫无保留)这个教程参考资料:ww.baidu.com/。http://www.ibeifeng.com/goods.php?id=156。HTMB
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行