
2008年2月18日
【来源:北京新东方 刘一男】
单词有好记的和不好记的两种。我们有一个共同的经验,当单词量扩展到一定程度的时候会遇到一个瓶颈,也就是说,有些不好记的单词,总也是记不下来,现在我根据历年六级考试出现以下难记单词的频率(同时这些单词也是新东方六千词汇单项班的同学最常向我提问的单词),我把它们的科学记忆方法详细讲解清楚,请大家在即将考试的最后这段时间,扎实地把他们记忆下来。
abrupt 突然的,意外的;唐突的,鲁莽的 2次
【一男讲词】:ab/rupt。ab-加强语气 +rupt-词根:突、破 =abrupt唐突的,突然的(突然而出)
【刨根问底】:为什么“rupt-突、破”呢?开头辅音字母“r-小草”表示“生长、破土而出”的含义,“-upt”是词根中表音成分。
【同类举例】:r-象“小草”形→rupt-突、破 →r-表义,upt-表音 →解释:似“小草”破土而出
c-象“手抓”形→cept-抓、拿 →c-表义,ept-表音→accept-接受(ac-往里)
【造词奥秘】:辅音字母“r”开头的单音节词汇有三大含义“草、长、顶破”、“跑”、“旋转”。“生长”群举例:“rise-升起”、“ripple-起涟漪”、“rust-起锈”
【同根扩展】:erupt [i'r8pt] vi. 爆发 (e-往外 +rupt-突、破[像小草一样破地而出]=火山爆发)
bankrupt ['b16kr4pt] n. 破产(bank-银行[本义:财产] +rupt-突、破=破产)
absurd 荒谬的,荒唐的 2次
【一男讲词】:ab/sur/d。ab-不+sur-过、通过 +d-的=absurd-荒谬的(不能通过,不被同意的)
【刨根问底】:怎么记“sur-超过、通过”?由“surpass-超过(sur-超 +pass-过)”反向记。
【再刨再问】:为什么“sur”老是代表“超过、通过”——它是“super-超、过”的缩影。
【同根扩展】:surplus ['s4:pl4s] n.过剩,盈余(sur-超、过 +plus-加=surplus过剩、盈余)
acute 严重的,激烈的;敏锐的;急性的 2次
【一男讲词】:ac/ute。ac-尖角、尖的 +ute-后缀 =acute-尖锐的,敏锐的
【刨根问底】:怎么记住“ac-尖角、尖的”——
已知:从“angle-角度” 提取词根“ang-角,尖角”
求证:ac=ang=尖角
因为:记得“an=a=un-非”吧,说明“an”和“a”是可以互换的
又因为:“c”发音类似于“g”——均读[k/g],又一次浊清互变
所以:ac=ang=尖角
【再刨再问】:怎么记住“ute-名词后缀或形容词后缀”——
用“mini-词根:小 +ute-后缀=minute-分钟(一分钟就是一个小份儿)”反记。
acknowledge 承认,承认……的权威;告知收到,确认; 5次
【一男讲词】:ac/knowledge。ac-往里 +knowledge-知识,认识 =acknowledge-承认(“承”就是“往里”拿,往里拿一个知识——承认、认知)
【刨根问底】:“ac”怎么既有“尖角”又有“往里”的意思呢?记住,“ac-往里”是正宗的前缀;而“ac-尖角”,只不过是“ang-角,尖角”的变体,重点强化一下吧。
acquaint 熟悉,认识。 2次
【一男讲词】:ac/qu/aint。ac-往里 +qu-取、获得 +aint-无义=acquaint-熟悉(取得、掌握)
【刨根问底】:怎么记“qu-词根:取、求”——“qu”“”
allege 断言,宣称,硬说 2次
【一男讲词】:al/leg/e。al-加强语气 +leg-说 +e-无义 =allege-断言、宣称(就是去说)
【刨根问底】:怎么记“leg-说”——用熟词“lecture-讲座(lect-词根:说)”去记,lect=leg。
【再刨再问】:为什么“leg-说”——首辅音字母“l”这里代表舌头(口条、长条的),有舌
头才能说,又比如“linguist-语言学家”,“language-语言”中的词根“ling=lang-语言”,“l=舌头”。
ambiguous 模棱两可的 暧昧的, 不明确的 5次(且5次全部是正确答案)
【一男讲词】:ambi/gu/ous。ambi-二、两+gu-go +ous-的=ambiguous-模棱两可(两边走)
【刨根问底】:怎么记“ambi-二、双”——用熟词“bicycle-自行车、二轮车”记住“bi-二”。
ambitious 有野心的,雄心勃勃的 2次
【一男讲词】:ambi/tious。ambi-二、两 +itious-复合后缀 =ambitious-有野心的(心事二主的)
ascend 渐渐上升,升高;攀登,登上 2次
【一男讲词】:a/scend。a-加强语气 +scend-词根:上升 =ascend-升高
【刨根问底】:为什么“scend-上升”——首辅音字母“sc”是单词“scale-攀登 ”的缩影。
【再刨再问】:怎么记“scale-攀登”——scale-刻度,比例尺,等级,攀登(sc-雕刻、切割)
【一词多义】:“scale-刻度”,“刻度”引申出了“增长”、“攀登”的含义。
【同根扩展】:descend-下降(de-向底下,scend-攀登)
ascribe 把……归因于,把……归属于 6次
【一男讲词】:a/scribe。a-加强语气 +scribe-词根:写 =ascribe-归因于(写在…名下)
【刨根问底】:为什么“scribe-写”——因为“scr”是“爪子”,用爪子来写。
assert 肯定的说,断言;维护,坚持 2次
【一男讲词】:as/sert。as-加强语气 +sert-插入 =assert-断言(插一杠子、打断别人)
【刨根问底】:怎么记“sert-插入”——用熟词“insert-插入、嵌入”去记。
【灵机一动】:“sert”谐音“射”,“射入”也类似“插入”。
authorize 授权,批准 3次
【一男讲词】:author/ize。author-作者 +ize-动词后缀 =authorize-批准(原作者的允许)
barren 不生育的, 不孕的, 贫瘠的, 没有结果的, 无益的, 单调的 2次
【一男讲词】:bar/r/en。bare-赤裸的 +r-无义双写 +en-后缀 =barren-贫瘠的(光秃的)
bewilder 迷惑,使糊涂 3次
【一男讲词】:be/wild/er。be-是 +wild-狂野的 +er-后缀 =bewilder-迷惑(思想狂野、乱)
bleak 寒冷的, 阴冷的, 荒凉的, 凄凉的, 黯淡的 2次
【一男讲词】:bl/eak。bl-blow-吹 +eak-表音成分 =bleak-寒冷(有风在吹)
【同根扩展】:blast-爆炸的冲击波,一阵风(bl-blow-吹,ast-无义的表音成分)
blunder 错误,大错 2次
【一男讲词】:“blunder”象声词,模仿人跌倒时候的磕磕绊绊的声音“不郎得~不郎得~”。
cater 满足需要,迎合;提供饮食及服务,办酒席 2次
【一男讲词】:cat/er。cat-猫 +er-后缀 =cater-迎合(猫是一种很喜欢迎合人的动物)
cherish 珍爱, 怀抱(希望等) 3次
【一男讲词】:cher/ish。cher=care-关心、关爱 +ish-后缀 =cherish-珍爱
claim 声明 2次
【一男讲词】:cl/aim。cl=cr-叫 +aim-无义的表音成分 =claim-声明(喊叫)
【刨根问底】:为什么“claim-词根:喊叫”——来自词根“cr-叫、喊”,而“claim-叫喊”中的“cl”正是“cr”的错写版本,关于“r/l”两个辅音字母的近亲关系本人曾多次讲解,比如汉语“乳汁[ru zhi]”经常被北方人错读成“乳汁[lu zhi]”,又如汉语的“人生[ren sheng]” 经常被南方人错读成“人生[len sheng]”。
conceive 构想,设想 2次
【一男讲词】:con/ceive。con-全 +ceive-抓、拿 =conceive-构想、构思(从整体上拿到)
【刨根问底】:怎么记“ceive-抓、拿”——首辅音字母“c”象人手抓之形。
【同根扩展】:deceive-欺骗,de-往下,ceive-抓、领,“欺骗”就是把人往底下“领、诱导”。
conspicuous 有目共睹的,引人注目的,受人注意的 2次
【一男讲词】:con/spic/uous。con-共 +spic-看 +uous-的 =conspicuous-有目共睹的
constrain 强迫,勉强(某人)做某事 5次
【一男讲词】:con/str/ain。con-共同 +str-拉扯 +ain-无义 =constrain-强迫(把不愿在一起的人强硬拉扯到一起)
decorate 装饰,布置 2次
【一男讲词】:dec/orate。dec-词根:美、美化 +orate-复合后缀 =decorate-装饰(就是美化)
【刨根问底】:为什么“dec-美、美化”——“dec”来自拉丁文数字“十”,“十”就是“美”,所谓“十全十美”。
【同根扩展】:decade-十年 ,decimal-十进制的,十进位的
deteriorate 恶化,变坏 3次
【一男讲词】:de/ter/iorate。de-往底下 +ter-to-去 +iorate-后缀 =deteriorate-恶化(往底下去)
dilemma 左右为难,进退两难的窘境,困境 2次
【一男讲词】:di/lem/m/a。di-两 +lemma-leman-情人 =dilemma-左右为难(两个情人)
【刨根问底】:为什么“leman-情人”——来自“lemon-柠檬”,把情人昵称柠檬。
distinction 差别,不同;区分,辨别;优秀,杰出;荣誉,优待 2次
【一男讲词】:di/stinct/ion。di-两 +stinct-stand-站着 +ion-后缀 =distinction-不同(在两个位
置站着,有距离,差别)
dwell 居住, 踌躇 2次
【一男讲词】:d/well。d-down-底下 +well-井 =dwell-居住(居住在井底)
elapse 时间消逝,过去 2次
【一男讲词】:e/lap/se。e-外、出 +lap-腿、走 +se-后缀 =elapse-消逝(往外走、走远)
【刨根问底】:为什么“lap-腿”——首辅音字母“l”象腿之形。
【造词奥秘】:l-象“长条、线”形→lap-腿、大腿(长条形的)→l-表义,ap-表音
cl-close-关、合 →clap-鼓掌(也就是合掌) →cl-表义,ap-表音
endeavor 尽力, 努力 2次
【一男讲词】:en/deav/or。en-加强语气 +deav-deaf-聋子 +or-后缀 =endeavor-尽力
(想一下,一个聋子尽力在听的样子)
endow 资助,捐赠,向……捐钱;给予,赋予,认为……有某种特质 3次
【一男讲词】:en/dow。en-加强语气 +dow-down-给、倒 =endow-赠与(倒给他)
eternal 永恒的,不变的 2次
【一男讲词】:e/tern/al。e-外 +tern-turn +al-的 =eternal-永恒的(一直往外旋转的)
explicit 外在的, 清楚的, 直率的, (租金等)直接付款的 2次
【一男讲词】:ex/pl/icit。ex-往外 +pl-说 +icit-的 =explicit-直率的(往外说的)
【刨根问底】:怎么记“pl-说”——用熟词“explain-解释(ex-外,pl-说,ain-无义——“解释”就是往外说 )”
extravagant 过度的,挥霍的,放纵的 2次
【一男讲词】:extra/vag/ant。extra-往外 +vag-走 +ant-的 =extravagant-过渡的(往外走的、
走出去的)
fascinate 使着迷, 使神魂颠倒, 入迷, 极度迷人的 2次
【一男讲词】:fasc/inate。fasc-法西斯,束棒,权力的象征 +inate-后缀 =fascinate-迷人
【刨根问底】:Fasces-法西斯、束棒,是权力的象征,对人尤其男人有强烈的吸引力。
feasible 可行的,可用的,可能的 2次
【一男讲词】:feas/ible。feas-做 +ible-能的 =feasible-可行的(可以做、可以操作的)
feeble 虚弱的,虚弱的 3次
【一男讲词】:f/eeble。f-fail-fall-倒下、落下 +eeble-ible-能的 =feeble-虚弱的、要倒的
flutter 鼓翼, 飘动, 悸动, 乱跳, 烦扰 2次
【一男讲词】:flut/t/er。flut-fly +t-无义双写 +er-后缀 =flutter-飘动(飞动)
glitter 闪闪发光, 闪烁, 闪光 2次
【一男讲词】:glit/t/er。glit-词根:闪光 +t-无义双写 +er-后缀 =glitter-闪烁
【造词秘密】:gl-glass玻璃-glow发光-glory-光荣→glit-词根:闪光→gl-表义,it-表音
s-seat座位-sure定→sit-坐 →s-表义,it-表音
homogeneously 类似地;同类地;同性质地 2次
【一男讲词】:homo/gene/ously。homo-相同 +gene-基因 +ously-地=homogeneously-同类的
illusion 幻想 幻觉 错觉,假象:对现实错误的看法 3次
【一男讲词】:il/lus/ion。il-进入 +lus-词根:光 +ion-后缀 =illusion-幻觉(进入光,强光直
下产生幻觉)
【造词奥秘】:l-象“长条、线”形→lus-光线(光线是长条形的)→l-表义,us-表音
【同根扩展】:luxury-奢侈、奢侈品,(lux-光,ury-后缀,奢侈品都是放光的),lux=lus
image 像, 形象, 印象,映像, 典型 2次
【一男讲词】:im/age。im-in-进去 +age-名词后缀 =image-印象,映像(印进去才有印象,
才呈象)
【刨根问底】:为什么“im-in-进去”——这是“m/n”的误写,举例证明,summer-夏天(sum=sun)
implicit 暗示的, 盲从的, 含蓄的, 固有的, 不怀疑的, 绝对的 2次
【一男讲词】:im/pl/icit。im-里面 +pl-说话 +icit-的 =implicit-含蓄的(在里面说)
【刨根问底】:怎么记“pl-说”——用熟词“explain-解释(ex-外,pl-说,ain-无义——“解释”就是往外说 )”
impulse 推动, 刺激, 冲动, 推动力 vt.推动 3次
【一男讲词】:im/pulse。im-往里 +pulse-push-推 =impulse-推动
ingenious 有发明天才的,机敏的,灵巧的 3次
【一男讲词】:in/gen/ious。in-内部 +genius-天才 +ious-的 =ingenious-灵巧的(在天才肚子
里的东西,天才所拥有的东西)
inherent 固有的, 内在的, 与生俱来的 2次
【一男讲词】:in/her/ent。in-加强语气 +her-继承 +ent-的 =inherent-固有的(遗传来的)
【刨根问底】:heir-继承人(he-他,ir-后缀,继承人主要是男的),heir=her-继承。
instantaneous 瞬间的, 即刻的, 即时的 2次
【一男讲词】:instant/aneous。instant-瞬间的 +aneous-复合后缀 =instantaneous-瞬间的
【刨根问底】:in-不 +st-stop-停 +ant-的 = instant-瞬间的(不停的,一刻不停的,瞬间的)
integrate 使成整体, 使一体化, 求...的积分, 结合 2次
【一男讲词】:in/teg/r/ate。in-未 +teg-touch-碰 +r-无义 +ate-动词后缀= integrate-使成为整体
【造词奥秘】:l-象“长条”形→leg-腿(腿是长条形的)→l-表义,eg-表音
t-touch-碰、触→teg-词根:碰、触 →t-表义,eg-表音
integrity 正直, 诚实, 完整, 完全, 完整性 2次
【一男讲词】:in/teg/r/ity。in-未 +teg-touch-碰 +r-无义 +ity-后缀 =integrity-完整(没有碰过)
intensify 加强,加紧 3次
【一男讲词】:in/tens/ify。in-加强语气 +tense-紧的 +ify-后缀 =intensify-加紧、加强
【刨根问底】:为什么“tense-紧”——来自词根“tend-伸、拉伸”,越拉越紧。
intervene 干涉,干预;干扰,阻挠 3次
【一男讲词】:inter/ven/e。inter-中间 +ven-走 +e-无义 =intervene-干预(走到别人中间)
【刨根问底】:为什么“ven-走”——“ven”是“went”的变体。
intricate 复杂的, 错综的, 难以理解的,精巧的 4次
【一男讲词】:in/tric/ate。in-内部 +trick-诡计 +ate-后缀 =intricate-复杂的(如诡计一样复杂)
【刨根问底】:怎么记“trick-诡计”——来自动词“trick-哄骗”,首辅音字母“tr-拉扯”,“哄骗”就是去“拉扯,诱导”别人。
【再刨再问】:怎么记“tr-拉扯”?用“tractor-拖拉机”去反着记。
【造词奥秘】:tr-拉扯 →trick-诱导、牵引、哄骗 →tr-表义,ick-表音
l-象“长条”形 →lick-舔(l-舌头) →l-表义,ick-表音
intrinsic (指价值、性质)固有的, 内在的, 本质的 5次
【一男讲词】:intr/ins/ic。intr-inter +ins-inside +ic-de =intrinsic-内在的
intuition 直觉, 直觉的知识 4次
【一男讲词】:in/tu/ition。in-不 +tu-教 +ition-复合后缀 =intuition-知觉(不需要教的东西)
【刨根问底】:为什么“tu-教”——来自“tut-教”,在“tut”中表示含义的是首辅音字母
“t”,t-teach-tell-talk-讲,说教。
【造词奥秘】:t-teach-教 →tut-词根:讲 →t-表义,ut-表音→tutor-家庭教师
m-move-动→mut-词根:移动→m-表义,ut-表音→mutual-彼此的、互动的
invalid 无效的,有病的,无能力的,无价值的 2次
【一男讲词】:in/val/id。in-无 +val-wealth-财富、价值 +id-的 =invalid-无效的、无价值的
【刨根问底】:为什么“val=wealth”——这是一次关于“v/w”的近亲字母错写现象,比如“victory-胜利”=“win-胜利”,又如:比如汉语“晚上[wan shang]”经常被北方人错读成“晚上[van shang]”。
magnify 夸大,放大,扩大 2次
【一男讲词】:mag/n/ify。mag-大 +n-无义 +ify-动词后缀 =magnify-夸大、放大
【刨根问底】:怎么记“mag-大”——用熟词“major-绝大多数”来记“maj-大”,mag=maj。
manifest 明显的;出现, 表明, 证明 4次
【一男讲词】:man/i/fest。man-词根:手 +i-无义 +fest-触、碰 =manifest-明显的(触手可及
的,能用手碰得到的——明白、明显的)
【刨根问底】:怎么记“man-词根:手”——用熟词“manual-手的;手册”以及熟词“manufacture-手工制造业”来记忆词根“man-词根:手”。
mingle (使)混合 4次
【一男讲词】:ming/le。ming=mix-混乱 +le-后缀 =mingle-混乱
【刨根问底】:为什么可以“ming=mix”——因为二者都是用开头辅音字母“m-move-动”表示的混乱的含义,“动”就是“乱”,所谓“动乱”。
notorious adj.恶名昭箸的,声名狼藉的 2次
【一男讲词】:not/orious。note-笔记、标注 +orious-的 =notorious-著名的、臭名昭著的
obscure 暗的, 朦胧的, 模糊的, 晦涩的 vt. 使暗, 使不明显 7次
【一男讲词】:ob/sc/ure。ob-不 +sc-看 +ure-后缀 =obscure-模糊的(看不清的)
【刨根问底】:怎么记“sc-看”——用熟词“scan-扫描、浏览”来记忆。
【造词奥秘】:p-片、平板→pan-平底锅 →p-表义,an-表音
cl-合、并 →clan-家族 →cl-表义,an-表音
sc-看 →scan-扫描、浏览→sc-表义,an-表音
offensive adj.冒犯的,攻击的 2次
【一男讲词】:of/fens/ive。of-出+fense-剑ive-后缀 =offensive-攻击的(出剑、出手)
【刨根问底】:为什么“fenc(s)e-剑”——首辅音字母“f”象竖立的“击剑”之形。
optimistically 乐观地 2次
【一男讲词】:optim/istically。optim-最佳的 +istically-复合后缀 =optimistically-乐观的
【刨根问底】:怎么记“optim-最佳的”——用熟词“option-选择”知道“opt-选择”,而“optim”原义指的是“选择出来的”,因此有“optim-最佳”的含义
paradox 似非而是的论点, 自相矛盾的话 3次
【一男讲词】:para/dox。para-旁、反 +dox-说 =paradox-自相矛盾的话(反着说)
【刨根问底】:怎么记“para-旁、反”——用熟词“paragraph-段、节 (para-旁,graph-写:写完一些在旁边再写,分开写,就是‘段’的来历)”来记。
【再刨再问】:怎么记“dox-说”——用熟词“document-公文、文件(doc-说、文)”来记。
permeate vt.弥漫, 渗透, 透过, 充满 vi. 透入 4次
【一男讲词】:per/me/ate。per-到处 +me-词根:弥漫 +ate-动词后缀 =permeate-到处弥漫
【刨根问底】:怎么记“me-词根:弥漫”——谐音:“me-弥”
perspective 透视的 n.展望,透视画法 2次
【一男讲词】:per/spect/ive。per-到处、贯穿 +spect-看 +ive-后缀 =perspective-透视
【刨根问底】:怎么记“spect-看”——用熟词“inspect-检查(in-进入,spect-看)”
【再刨再问】:为什么“spect-看”——来自间单词“spy-间谍(间谍就是到处看的人)”
perpetual 永久的
【一男讲词】:per/pet/ual。per-贯穿、一直 +pet-追求 +ual-的 =perpetual-永久的(一直追求)
【刨根问底】:为什么“pet-追求”——来自词根“ped-脚板、足、走”
【再刨再问】:为什么“ped-足”——首辅音字母“p”象“脚掌”之形
permanent 持久的,永久的,不变的 5次
【一男讲词】:per/man/ent。per-一直 +man-词根:手 +ent-的 =permanent-持久的(一直用手拿着的,没有放手的,注意:“持久”的“持”就是用手的意思)
【刨根问底】:怎么记“man-词根:手”——用熟词“manual-手的;手册”以及熟词“manufacture-手工制造业”来记忆词根“man-词根:手”。
persistent 坚持不懈的,执意的:拒绝放弃或听任的;顽固坚持的 5次
【一男讲词】:per/sist/ent。per-一直 +sist-词根:站立+ent-的 =persistent-不懈的(一直站着)
porch 门廊, 走廊 2次
【一男讲词】:p/orch。p-平的 +orch-表音成分 =porch-走廊(走廊是一段平坦的路)
【造词奥秘】:p-片、平→porch-走廊(走廊的是一段平坦的路) →p-表义,orch-表音
t-turn-拧→torch-火把(最初火把由杂草拧结而成)→ t-表义,orch-表音
preliminary 初步的,预备的 2次
【一男讲词】:pre/lim/inary。pre-在前 +lim-limit-界限 +inary-复合后缀 =preliminary-初步的预备的(在界限之前的,还没入门的)
premium 额外费用, 奖金, 奖赏, 保险费, (货币兑现的)贴水 2次
【一男讲词】:pre/m/ium。pre-在前 +m-money +ium-后缀 =premium-保险费(事先预留的钱)
priority 优先权,重点;优先考虑的事 2次
【一男讲词】:pri/ority。pri-在前 +ority-复合后缀 =priority-优先
prone 倾向于 2次
【一男讲词】:pr/one。pr-向前 +one-无义表音成分 =prone-倾向于(向前倾斜)
reclaim 要回;开垦荒地,回收 3次
【一男讲词】:re/claim。re-往回 +claim-词根:喊叫 =reclaim-要回(往回喊,比如“拿回来!!”)
【刨根问底】:为什么“claim-词根:喊叫”——来自词根“cr-叫、喊”,而“claim-叫喊”中的“cl”正是“cr”的错写版本,关于“r/l”两个辅音字母的近亲关系本人曾多次讲解,比如汉语“乳汁[ru zhi]”经常被北方人错读成“乳汁[lu zhi]”,又如汉语的“人生[ren sheng]” 经常被南方人错读成“人生[len sheng]”。
【造词奥秘】:那为什么“cr-叫”——在熟词“cry-哭、嚎”、“critic-批评、叫骂”、“crow-鸡叫”、“crazy-疯狂”中去体会并记忆。
reconcile 使和解, 使和谐, 使顺从 4次
【一男讲词】:re/concil/e。re-又、再 +concil-consult-咨询、开会 +e-无义 =reconcile-使和解
(一再、反复地开会、商讨,使双方和解)
release 释放, 解放, 放弃, 让与, 免除, 发表 2次
【一男讲词】:re/lease。re-返回 +lease-租约、约=release-释放、解放(从约定中出来、脱身)
【刨根问底】:为什么“lease-租借、租约”——首辅音字母“l”就是“lend-借”的缩影。
【造词奥秘】:l-lend-借 →lease-租借、租约 →l-表义,ease-表音
pl-说 →please-请、邀请(用语言相邀) →pl-表义,ease-表音
cr=gr-grow→increase-增长(in-往里、继续) →cr-表义,ease-表音
remedy 治疗,矫正(坏事,缺点) 3次
【一男讲词】:re/med/y。re-往回 +med=mend-维修 +y-后缀 =remedy-治疗(往回维修)
retrieve 找回,重新得到 2次
【一男讲词】:re/trieve。re-往回 +trieve-取 =retrieve-找回
【刨根问底】:怎么记“trieve-取”——“trieve”谐音“取”。
reproach 责备 2次
【一男讲词】:re/proach。re-往回、折返 +proach-词根:路 =reproach-责备(折返某人的路,使之受挫折)
【刨根问底】:为什么“proach-路”——首辅音字母“pr-向前”,“路”当然是“向前”的。
【造词奥秘】: pr-前-向前 →proach-路(向前延伸的东西)→pr-表义,oach-表音
c-car-车 →coach-马车(马车也是车) →c-表义,oach-表音
l-象“长条”形 →loach-泥鳅(泥鳅是长条形) →l-表义,oach-表音
respectable 可敬的 2次
【一男讲词】:respect/able。respect-尊敬 +able-能的 =respectable-值得尊敬的
respective 各自的,分别的 2次
【一男讲词】:respect/ive。respect-尊敬 +ive-的 =respective-各自的(尊重每一个个体)
respectful 恭敬的 2次
【一男讲词】:respect/ful。respect-尊敬 +ful-的样子 =respectful-恭敬的样子
revenge 复仇;为…报复 2次
【一男讲词】:re/ven/ge。re-往回 +ven-went-走 +ge=age-后缀 =revenge-复仇(走回来,复
仇,回来找你算账)
【刨根问底】:为什么“ven-went-走”——这是一次关于“v/w”的近亲字母错写现象,比如“victory-胜利”=“win-胜利”,又如:比如汉语“晚上[wan shang]”经常被北方人错读成“晚上[van shang]”。
revelation 泄露,启示 2次
【一男讲词】:revelation revelation revelation
rigorous 严密的,缜密的;严格的,严厉的 2次
【一男讲词】:rig/orous。rig-词根:直 +orous-复合后缀 =rigorous-严厉的(站得笔直)
【刨根问底】:为什么“rig-词根:直”——首辅音字母“r”是“right-正确”的缩影。
scratch 抓,挠,搔 2次
【一男讲词】:scr/atch。scr-爪子 +atch-表音成分 =scratch-抓
【造词奥秘】:scr-词根:爪子→scratch-抓 →scr-表义,atch-表音
p-片、成张的 →patch-补丁、布片→p-表义,atch-表音
h-hen-母鸡 →hatch-孵化 →h-表义,atch-表音
scrape 刮,擦 2次
【一男讲词】:scr/ape。scr-爪子 +ape-表音成分 =scrape-刮
【造词奥秘】:scr-词根:爪子→scrape-刮,擦 →scr-表义,ape-表音
t-turn-转、旋转→tape-磁带,录音带→t-表义,ape-表音
simulate 模拟, 模仿, 假装, 冒充 2次
【一男讲词】:sim/ul/ate。sim-same +ul-连接成分 +ate-后缀 =simulate-模拟(所谓“模拟、模仿”就是与之相同)
simultaneous 同时的, 同时发生的 simultaneously同时地 4次
【一男讲词】:simul/tane/ous。simul=same +tane-take place-发生 +ous-的 =simultaneous
skeptical 怀疑的 3次
【一男讲词】:skept/ical。skept-词根:看 +ical-的 =skeptical=怀疑的(怀疑谁会盯着他看)
【刨根问底】:为什么“skept-词根:看”——首辅音字母“sk”就是“sc-看”。
spontaneous 自发的, 自然产生的 4次
【一男讲词】:spon/tane/ous。spon-跳 +tane-take palce –发生 +ous-的 =spontaneous-自发的
【刨根问底】:怎么记“spon-跳”——“spon”谐音“死蹦”。
stagger 口吃, 结巴着说出, 结结巴巴地说 2次
【一男讲词】:stag/g/er。stag-词根:站、停 +g-无义双写 +er-后缀 =stagger-结巴(结巴就
是,说话喜欢停顿,说话停停)
【刨根问底】:为何“stag-词根:站、停”——首字母“st”是“stand-站、stop-停”的缩影。
subtle 狡猾的, 敏感的, 微妙的, 精细的, 稀薄的 2次
【一男讲词】:subtle subtle subtle
summit 顶点, 最高阶层 2次
【一男讲词】:sum/m/it。sum-sun-太阳 +m-无义双写 +it-后缀 =summit-顶点(太阳是顶点)
【刨根问底】:为什么“sum-sun-太阳”——这是关于近亲辅音字母“m/n”错写的现象,在英语书写历史上,多次出现“m/n”互讹的事实,比如“summer-夏天”中的“sum”也是“sun-太阳”的错写版本。
suspicious 可疑的, 怀疑的 2次
【一男讲词】:su/spic/ious。su-sub-下面 +spic-看 +ious-的 =suspicious-怀疑的(从低下偷偷看、偷偷瞄对方的脸色——怀疑)
【刨根问底】:为什么“spic-看”——spic=spect-词根:看。
surplus 多余的,剩余的 3次
【一男讲词】:sur/plus。sur-super-超 +plus-加 =surplus-过剩(连超带加)
threshold 开始, 开端, 极限 2次
【一男讲词】:thres/hold。thres=thread +hold-阻挡、阻止 =threshold-门槛(挡门的线、木条)trivial 琐细的、琐碎的,不重要的 6次
【一男讲词】:tr/ivial。tri=three-三、多 +ivial-复合后缀 =trivial-琐细的、繁杂的
tumble 翻倒,摔倒
【一男讲词】:tum/ble。tum-turn=旋转 +ble-后缀 =tumble-摔倒(翻了、滚了)
turbulent 狂暴的,动乱的 2次
【一男讲词】:tur/bul/ent。tur-旋转 +bul-公牛 +ent-的 =turbulent-狂暴的(旋转的公牛)
vulnerable 易受伤的,脆弱的 3次
【一男讲词】:vuln/erable。vuln=wound-伤 +erable-复合后缀 =vulnerable-易受伤的
【刨根问底】:为什么“vuln=wound-伤”?这是又一次关于“v/w”的近亲字母错写现象,比如“victory-胜利”=“win-胜利”,又如:比如汉语“晚上[wan shang]”经常被北方人错读成“晚上[van shang]”。
vulgar 粗俗的,平民的 2次
【灵机一动】:“vulgar”谐音“五哥”,胡编:我五哥这个人很粗俗!
warrant 授权令;正当理由,根据;证明……是正当的 2次
【一男讲词】:war/r/ant。war-ward-保卫 +r-无义双写 +ant-的 =warrant-授权的(受到保护的)【刨根问底】:怎么记住“ward-保卫、看守”——首字母“w”是“watch-看”的缩影,而
“-ard”无非是词根中的表音成分,正是“w-看”的含义决定了“ward-看守”。
【造词奥秘】:w-watch-看→ward-保卫、守卫、看守 →w-表义,ard-表音
h-high-高 →hard-难(高难)、硬(密度高)→h-表义,ard-表音
posted @ 2008-02-18 23:48
克林顿 阅读(156) |
评论 (0) |
编辑 收藏

2007年11月21日
本文更多将会介绍三思在日常中经常会用到的,或者虽然很少用到,但是感觉挺有意思的一些函数。分二类介绍,分别是:
著名函数篇-经常用到的函数
非著名函数篇-即虽然很少用到,但某些情况下却很实用
注:N表示数字型,C表示字符型,D表示日期型,[]表示内中参数可被忽略,fmt表示格式。
单值函数在查询中返回单个值,可被应用到select,where子句,start with以及connect by 子句和having子句。
(一).数值型函数(Number Functions)
数值型函数输入数字型参数并返回数值型的值。多数该类函数的返回值支持38位小数点,诸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小数点。ACOS, ASIN, ATAN, and ATAN2支持30位小数点。
1、MOD(n1,n2) 返回n1除n2的余数,如果n2=0则返回n1的值。
例如:SELECT MOD(24,5) FROM DUAL;
2、ROUND(n1[,n2]) 返回四舍五入小数点右边n2位后n1的值,n2缺省值为0,如果n2为负数就舍入到小数点左边相应的位上(虽然oracle documents上提到n2的值必须为整数,事实上执行时此处的判断并不严谨,即使n2为非整数,它也会自动将n2取整后做处理,但是我文档中其它提到必须为整的地方需要特别注意,如果不为整执行时会报错的)。
例如:SELECT ROUND(23.56),ROUND(23.56,1),ROUND(23.56,-1) FROM DUAL;
3、TRUNC(n1[,n2] 返回截尾到n2位小数的n1的值,n2缺省设置为0,当n2为缺省设置时会将n1截尾为整数,如果n2为负值,就截尾在小数点左边相应的位上。
例如:SELECT TRUNC(23.56),TRUNC(23.56,1),TRUNC(23.56,-1) FROM DUAL;
(二).字符型函数返回字符值(Character Functions Returning Character Values)
该类函数返回与输入类型相同的类型。
? 返回的CHAR类型值长度不超过2000字节;
? 返回的VCHAR2类型值长度不超过4000字节;
如果上述应返回的字符长度超出,oracle并不会报错而是直接截断至最大可支持长度返回。
? 返回的CLOB类型值长度不超过4G;
对于CLOB类型的函数,如果返回值长度超出,oracle不会返回任何错误而是直接抛出错误。
1、LOWER(c) 将指定字符串内字符变为小写,支持CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB类型
例如:SELECT LOWER('WhaT is tHis') FROM DUAL;
2、UPPER(c) 将指定字符串内字符变为大写,支持CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB类型
例如:SELECT UPPER('WhaT is tHis') FROM DUAL;
3、LPAD(c1,n[,c2]) 返回指定长度=n的字符串,需要注意的有几点:
? 如果n
? 如果n>c1.length and c2 is null,以空格从左向右补充字符长度至n并返回;
? 如果n>c1.length and c2 is not null,以指定字符c2从左向右补充c1长度至n并返回;
例如:SELECT LPAD('WhaT is tHis',5),LPAD('WhaT is tHis',25),LPAD('WhaT is tHis',25,'-') FROM DUAL;
最后大家再猜一猜,如果n<0,结果会怎么样
4、RPAD(c1,n[,c2]) 返回指定长度=n的字符串,基本与上同,不过补充字符是从右向左方向正好与上相反;
例如:SELECT RPAD('WhaT is tHis',5),RPAD('WhaT is tHis',25),RPAD('WhaT is tHis',25,'-') FROM DUAL;
5、TRIM([[LEADING||TRAILING||BOTH] c2 FROM] c1) 哈哈,被俺无敌的形容方式搞晕头了吧,这个地方还是看图更明了一些。
看起来很复杂,理解起来很简单:
? 如果没有指定任何参数则oracle去除c1头尾空格
例如:SELECT TRIM(' WhaT is tHis ') FROM DUAL;
? 如果指定了c2参数,则oracle去掉c1头尾c2(这个建议细致测试,有多种不同情形的哟)
例如:SELECT TRIM('W' FROM 'WhaT is tHis w W') FROM DUAL;
? 如果指定了leading参数则会去掉c1头部c2
例如:SELECT TRIM(leading 'W' FROM 'WhaT is tHis w W') FROM DUAL;
? 如果指定了trailing参数则会去掉c1尾部c2
例如:SELECT TRIM(trailing 'W' FROM 'WhaT is tHis w W') FROM DUAL;
? 如果指定了both参数则会去掉c1头尾c2(跟不指定有区别吗?没区别!)
例如:SELECT TRIM(both 'W' FROM 'WhaT is tHis w W') FROM DUAL;
注意:c2长度=1
6、LTRIM(c1[,c2]) 千万表以为与上面那个长的像,功能也与上面的类似,本函数是从字符串c1左侧截取掉与指定字符串c2相同的字符并返回。如果c2为空则默认截取空格。
例如:SELECT LTRIM('WWhhhhhaT is tHis w W','Wh') FROM DUAL;
7、RTRIM(c1,c2)与上同,不过方向相反
例如:SELECT RTRIM('WWhhhhhaT is tHis w W','W w') FROM DUAL;
8、REPLACE(c1,c2[,c3]) 将c1字符串中的c2替换为c3,如果c3为空,则从c1中删除所有c2。
例如:SELECT REPLACE('WWhhhhhaT is tHis w W','W','-') FROM DUAL;
9、SOUNDEX(c) 神奇的函数啊,该函数返回字符串参数的语音表示形式,对于比较一些读音相同,但是拼写不同的单词非常有用。计算语音的算法如下:
? 保留字符串首字母,但删除a、e、h、i、o、w、y。
? 将下表中的数字赋给相对应的字母:
1:b、f、p、v
2:c、g、k、q、s、x、z
3:d、t
4:l
5:m、n
6:R
? 如果字符串中存在拥有相同数字的2个以上(包含2个)的字母在一起(例如b和f),或者只有h或w,则删除其他的,只保留1个;
? 只返回前4个字节,不够用0填充
例如:SELECT SOUNDEX('dog'),soundex('boy') FROM DUAL;
10、SUBSTR(c1,n1[,n2]) 截取指定长度的字符串。稍不注意就可能充满了陷阱的函数。
n1=开始长度;
n2=截取的字符串长度,如果为空,默认截取到字符串结尾;
? 如果n1=0 then n1=1
? 如果n1>0,则oracle从左向右确认起始位置截取
例如:SELECT SUBSTR('What is this',5,3) FROM DUAL;
? 如果n1<0,则oracle从右向左数确认起始位置
例如:SELECT SUBSTR('What is this',-5,3) FROM DUAL;
? 如果n1>c1.length则返回空
例如:SELECT SUBSTR('What is this',50,3) FROM DUAL;
然后再请你猜猜,如果n2<1,会如何返回值呢
11、TRANSLATE(c1,c2,c3) 就功能而言,此函数与replace有些相似。但需要注意的一点是,translate是绝对匹配替换,这点与replace函数具有非常大区别。什么是绝对匹配替换呢?简单的说,是将字符串c1中按一定的格式c2替换为c3。如果文字形容仍然无法理解,我们通过几具实例来说明:
例如:
SELECT TRANSLATE('What is this','','-') FROM DUAL;
SELECT TRANSLATE('What is this','-','') FROM DUAL;
结果都是空。来试试这个:
SELECT TRANSLATE('What is this',' ',' ') FROM DUAL;
再来看这个:
SELECT TRANSLATE('What is this','ait','-*') FROM DUAL;
是否明白了点呢?Replace函数理解比较简单,它是将字符串中指定字符替换成其它字符,它的字符必须是连续的。而translate中,则是指定字符串c1中出现的c2,将c2中各个字符替换成c3中位置顺序与其相同的c3中的字符。明白了?Replace是替换,而translate则像是过滤。
(三).字符型函数返回数字值(Character Functions Returning Number Values)
本类函数支持所有的数据类型
1、INSTR(c1,c2[,n1[,n2]]) 返回c2在c1中位置
? c1:原字符串
? c2:要寻找的字符串
? n1:查询起始位置,正值表示从左到右,负值表示从右到左 (大小表示位置,比如3表示左面第3处开始,-3表示右面第3处开始)。黑黑,如果为0的话,则返回的也是0
? n2:第几个匹配项。大于0
例如:SELECT INSTR('abcdefg','e',-3) FROM DUAL;
2、LENGTH(c) 返回指定字符串的长度。如果
例如:SELECT LENGTH('A123中') FROM DUAL;
猜猜SELECT LENGTH('') FROM DUAL;的返回值是什么
(四).日期函数(Datetime Functions)
本类函数中,除months_between返回数值外,其它都将返回日期。
1、ADD_MONTHS() 返回指定日期月份+n之后的值,n可以为任何整数。
例如:SELECT ADD_MONTHS(sysdate,12),ADD_MONTHS(sysdate,-12) FROM DUAL;
2、CURRENT_DATE 返回当前session所在时区的默认时间
例如:
SQL> alter session set nls_date_format = 'mm-dd-yyyy' ;
SQL> select current_date from dual;
3、SYSDATE 功能与上相同,返回当前session所在时区的默认时间。但是需要注意的一点是,如果同时使用sysdate与current_date获得的时间不一定相同,某些情况下current_date会比sysdate快一秒。经过与xyf_tck(兄台的大作ORACLE的工作机制写的很好,深入浅出)的短暂交流,我们认为current_date是将current_timestamp中毫秒四舍五入后的返回,虽然没有找到文档支持,但是想来应该八九不离十。同时,仅是某些情况下会有一秒的误差,一般情况下并不会对你的操作造成影响,所以了解即可。
例如:SELECT SYSDATE,CURRENT_DATE FROM DUAL;
4、LAST_DAY(d) 返回指定时间所在月的最后一天
例如:SELECT last_day(SYSDATE) FROM DUAL;
5、NEXT_DAY(d,n) 返回指定日期后第一个n的日期,n为一周中的某一天。但是,需要注意的是n如果为字符的话,它的星期形式需要与当前session默认时区中的星期形式相同。
例如:三思用的中文nt,nls_language值为SIMPLIFIED CHINESE
SELECT NEXT_DAY(SYSDATE,5) FROM DUAL;
SELECT NEXT_DAY(SYSDATE,'星期四') FROM DUAL;
两种方式都可以取到正确的返回,但是:
SELECT NEXT_DAY(SYSDATE,'Thursday') FROM DUAL;
则会执行出错,提供你说周中的日无效,就是这个原因了。
6、MONTHS_BETWEEN(d1,d2) 返回d1与d2间的月份差,视d1,d2的值大小,结果可正可负,当然也有可能为0
例如:
SELECT months_between(SYSDATE, sysdate),
months_between(SYSDATE, add_months(sysdate, -1)),
months_between(SYSDATE, add_months(sysdate, 1))
FROM DUAL;
7、ROUND(d[,fmt]) 前面讲数值型函数的时候介绍过ROUND,此处与上功能基本相似,不过此处操作的是日期。如果不指定fmt参数,则默认返回距离指定日期最近的日期。
例如:SELECT ROUND(SYSDATE,'HH24') FROM DUAL;
8、TRUNC(d[,fmt]) 与前面介绍的数值型TRUNC原理相同,不过此处也是操作的日期型。
例如:SELECT TRUNC(SYSDATE,'HH24') FROM DUAL;
(五).转换函数(Conversion Functions)
转换函数将指定字符从一种类型转换为另一种,通常这类函数遵循如下惯例:函数名称后面跟着待转换类型以及输出类型。
1、TO_CHAR() 本函数又可以分三小类,分别是
? 转换字符->字符TO_CHAR(c):将nchar,nvarchar2,clob,nclob类型转换为char类型;
例如:SELECT TO_CHAR('AABBCC') FROM DUAL;
? 转换时间->字符TO_CHAR(d[,fmt]):将指定的时间(data,timestamp,timestamp with time zone)按照指定格式转换为varchar2类型;
例如:SELECT TO_CHAR(sysdate,'yyyy-mm-dd hh24:mi:ss') FROM DUAL;
? 转换数值->字符TO_CHAR(n[,fmt]):将指定数值n按照指定格式fmt转换为varchar2类型并返回;
例如:SELECT TO_CHAR(-100, 'L99G999D99MI') FROM DUAL;
2、TO_DATE(c[,fmt[,nls]]) 将char,nchar,varchar2,nvarchar2转换为日期类型,如果fmt参数不为空,则按照fmt中指定格式进行转换。注意这里的fmt参数。如果ftm为'J'则表示按照公元制(Julian day)转换,c则必须为大于0并小于5373484的正整数。
例如:
SELECT TO_DATE(2454336, 'J') FROM DUAL;
SELECT TO_DATE('2007-8-23 23:25:00', 'yyyy-mm-dd hh24:mi:ss') FROM DUAL;
为什么公元制的话,c的值必须不大于5373484呢?因为Oracle的DATE类型的取值范围是公元前4712年1月1日至公元9999年12月31日。看看下面这个语句:
SELECT TO_CHAR(TO_DATE('9999-12-31','yyyy-mm-dd'),'j') FROM DUAL;
3、TO_NUMBER(c[,fmt[,nls]]) 将char,nchar,varchar2,nvarchar2型字串按照fmt中指定格式转换为数值类型并返回。
例如:SELECT TO_NUMBER('-100.00', '9G999D99') FROM DUAL;
(六).其它辅助函数(Miscellaneous Single-Row Functions)
1、DECODE(exp,s1,r1,s2,r2..s,r[,def]) 可以把它理解成一个增强型的if else,只不过它并不通过多行语句,而是在一个函数内实现if else的功能。
exp做为初始参数。s做为对比值,相同则返回r,如果s有多个,则持续遍历所有s,直到某个条件为真为止,否则返回默认值def(如果指定了的话),如果没有默认值,并且前面的对比也都没有为真,则返回空。
毫无疑问,decode是个非常重要的函数,在实现行转列等功能时都会用到,需要牢记和熟练使用。
例如:select decode('a2','a1','true1','a2','true2','default') from dual;
2、GREATEST(n1,n2,...n) 返回序列中的最大值
例如:SELECT GREATEST(15,5,75,8) "Greatest" FROM DUAL;
3、LEAST(n1,n2....n) 返回序列中的最小值
例如:SELECT LEAST(15,5,75,8) LEAST FROM DUAL;
4、NULLIF(c1,c2)
Nullif也是个很有意思的函数。逻辑等价于:CASE WHEN c1 = c2 THEN NULL ELSE c1 END
例如:SELECT NULLIF('a','b'),NULLIF('a','a') FROM DUAL;
5、NVL(c1,c2) 逻辑等价于IF c1 is null THEN c2 ELSE c1 END。c1,c2可以是任何类型。如果两者类型不同,则oracle会自动将c2转换为c1的类型。
例如:SELECT NVL(null, '12') FROM DUAL;
6、NVL2(c1,c2,c3) 大家可能都用到nvl,但你用过nvl2吗?如果c1非空则返回c2,如果c1为空则返回c3
例如:select nvl2('a', 'b', 'c') isNull,nvl2(null, 'b', 'c') isNotNull from dual;
7、SYS_CONNECT_BY_PATH(col,c) 该函数只能应用于树状查询。返回通过c1连接的从根到节点的路径。该函数必须与connect by 子句共同使用。
例如:
create table tmp3(
rootcol varchar2(10),
nodecol varchar2(10)
);
insert into tmp3 values ('','a001');
insert into tmp3 values ('','b001');
insert into tmp3 values ('a001','a002');
insert into tmp3 values ('a002','a004');
insert into tmp3 values ('a001','a003');
insert into tmp3 values ('a003','a005');
insert into tmp3 values ('a005','a008');
insert into tmp3 values ('b001','b003');
insert into tmp3 values ('b003','b005');
select lpad(' ', level*10,'=') ||'>'|| sys_connect_by_path(nodecol,'/')
from tmp3
start with rootcol = 'a001'
connect by prior nodecol =rootcol; |
8、SYS_CONTEXT(c1,c2[,n]) 将指定命名空间c1的指定参数c2的值按照指定长度n截取后返回。
Oracle9i提供内置了一个命名空间USERENV,描述了当前session的各项信息,其拥有下列参数:
? CURRENT_SCHEMA:当前模式名;
? CURRENT_USER:当前用户;
? IP_ADDRESS:当前客户端IP地址;
? OS_USER:当前客户端操作系统用户;
等等数十项,更详细的参数列还请大家直接参考Oracle Online Documents
例如:SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') FROM DUAL;
注:N表示数字型,C表示字符型,D表示日期型,[]表示内中参数可被忽略,fmt表示格式。
单值函数在查询中返回单个值,可被应用到select,where子句,start with以及connect by 子句和having子句。
(一).数值型函数(Number Functions)
数值型函数输入数字型参数并返回数值型的值。多数该类函数的返回值支持38位小数点,诸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小数点。ACOS, ASIN, ATAN, and ATAN2支持30位小数点。
1、ABS(n) 返回数字的绝对值
例如:SELECT ABS(-1000000.01) FROM DUAL;
2、COS(n) 返回n的余弦值
例如:SELECT COS(-2) FROM DUAL;
3、ACOS(n) 反余弦函数,n between -1 and 1,返回值between 0 and pi。
例如:SELECT ACOS(0.9) FROM DUAL;
4、BITAND(n1,n2) 位与运算,这个太有意思了,虽然没想到可能用到哪里,详细说明一下:
假设3,9做位与运算,3的二进制形式为:0011,9的二进制形式为:1001,则结果是0001,转换成10进制数为1。
例如:SELECT BITAND(3,9) FROM DUAL;
5、CEIL(n) 返回大于或等于n的最小的整数值
例如:SELECT ceil(18.2) FROM DUAL;
考你一下,猜猜ceil(-18.2)的值会是什么呢?
6、FLOOR(n) 返回小于等于n的最大整数值
例如:SELECT FLOOR(2.2) FROM DUAL;
再猜猜floor(-2.2)的值会是什么呢
7、BIN_TO_NUM(n1,n2,....n) 二进制转向十进制
例如:SELECT BIN_TO_NUM(1),BIN_TO_NUM(1,0),BIN_TO_NUM(1,1) FROM DUAL;
8、SIN(n) 返回n的正玄值,n为弧度。
例如:SELECT SIN(10) FROM DUAL;
9、SINH(n) 返回n的双曲正玄值,n为弧度。
例如:SELECT SINH(10) FROM DUAL;
10、ASIN(n) 反正玄函数,n between -1 and 1,返回值between pi/2 and -pi/2。
例如:SELECT ASIN(0.8) FROM DUAL;
11、TAN(n) 返回n的正切值,n为弧度
例如:SELECT TAN(0.8) FROM DUAL;
12、TANH(n) 返回n的双曲正切值,n为弧度
例如:SELECT TANH(0.8) FROM DUAL;
13、ATAN(n) 反正切函数,n表示弧度,返回值between pi/2 and -pi/2。
例如:SELECT ATAN(-444444.9999999) FROM DUAL;
14、EXP(n) 返回e的n次幂,e = 2.71828183 ...
例如:SELECT EXP(3) FROM DUAL;
15、LN(n) 返回n的自然对数,n>0
例如:SELECT LN(0.9) FROM DUAL;
16、LOG(n1,n2) 返回以n1为底n2的对数,n1 >0 and not 1 ,n2>0
例如:SELECT LOG(1.1,2.2) FROM DUAL;
17、POWER(n1,n2) 返回n1的n2次方。n1,n2可以为任意数值,不过如果m是负数,则n必须为整数
例如:SELECT POWER(2.2,2.2) FROM DUAL;
18、SIGN(n) 如果n<0返回-1,如果n>0返回1,如果n=0返回0.
例如:SELECT SIGN(14),SIGN(-14),SIGN(0) FROM DUAL;
19、SQRT(n) 返回n的平方根,n为弧度。n>=0
例如:SELECT SQRT(0.1) FROM DUAL;
(二).字符型函数返回字符值(Character Functions Returning Character Values)
该类函数返回与输入类型相同的类型。
? 返回的CHAR类型值长度不超过2000字节;
? 返回的VCHAR2类型值长度不超过4000字节;
如果上述应返回的字符长度超出,oracle并不会报错而是直接截断至最大可支持长度返回。
? 返回的CLOB类型值长度不超过4G;
对于CLOB类型的函数,如果返回值长度超出,oracle不会返回任何错误而是直接抛出错误。
1、CHR(N[ USING NCHAR_CS]) 返回指定数值在当前字符集中对应的字符
例如:SELECT CHR(95) FROM DUAL;
2、CONCAT(c1,c2) 连接字符串,等同于||
例如:SELECT concat('aa','bb') FROM DUAL;
3、INITCAP(c) 将字符串中单词的第一个字母转换为大写,其它则转换为小写
例如:SELECT INITCAP('whaT is this') FROM DUAL;
4、NLS_INITCAP(c) 返回指定字符串,并将字符串中第一个字母变大写,其它字母变小写
例如:SELECT NLS_INITCAP('中华miNZHu') FROM DUAL;
它还具有一个参数:Nlsparam用来指定排序规则,可以忽略,默认状态该参数为当前session的排序规则。
(三).字符型函数返回数字值(Character Functions Returning Number Values)
本类函数支持所有的数据类型
1、ASCII(c) 与chr函数的用途刚刚相反,本函数返回指定字符在当前字符集下对应的数值。
例如:SELECT ASCII('_') FROM DUAL;
(四).日期函数(Datetime Functions)
本类函数中,除months_between返回数值外,其它都将返回日期。
1、CURRENT_TIMESTAMP([n]) 返回当前session所在时区的日期和时间。n表示毫秒级的精度,不大于6
例如:SELECT CURRENT_TIMESTAMP(3) FROM DUAL;
2、LOCALTIMESTAMP([n]) 与上同,返回当前session所在时区的日期和时间。n表示毫秒级的精度,不大于6
例如:SELECT LOCALTIMESTAMP(3) FROM DUAL;
3、SYSTIMESTAMP([n]) 与上同,返回当前数据库所在时区的日期和时间,n表示毫秒级的精度,>0 and <6
例如:SELECT SYSTIMESTAMP(4) FROM DUAL;
4、DBTIMEZONE 返回数据库的当前时区
例如:SELECT DBTIMEZONE FROM DUAL;
5、SESSIONTIMEZONE 返回当前session所在时区
例如:SELECT SESSIONTIMEZONE FROM DUAL;
6、EXTRACT(key from date) key=(year,month,day,hour,minute,second) 从指定时间提到指定日期列
例如:SELECT EXTRACT(year from sysdate) FROM DUAL;
7、TO_TIMESTAMP(c1[,fmt]) 将指定字符按指定格式转换为timestamp格式。
例如:SELECT TO_TIMESTAMP('2007-8-22', 'YYYY-MM-DD HH:MI:SS') FROM DUAL;
(五).转换函数(Conversion Functions)
转换函数将指定字符从一种类型转换为另一种,通常这类函数遵循如下惯例:函数名称后面跟着待转换类型以及输出类型。
1、BIN_TO_NUM(n1,n2...n) 将一组位向量转换为等价的十进制形式。
例如:SELECT BIN_TO_NUM(1,1,0) FROM DUAL;
2、CAST(c as newtype) 将指定字串转换为指定类型,基本只对字符类型有效,比如char,number,date,rowid等。此类转换有一个专门的表列明了哪种类型可以转换为哪种类型,此处就不作酹述。
例如:SELECT CAST('1101' AS NUMBER(5)) FROM DUAL;
3、CHARTOROWID(c) 将字符串转换为rowid类型
例如:SELECT CHARTOROWID('A003D1ABBEFAABSAA0') FROM DUAL;
4、ROWIDTOCHAR(rowid) 转换rowid值为varchar2类型。返回串长度为18个字节。
例如:SELECT ROWIDTOCHAR(rowid) FROM DUAL;
5、TO_MULTI_BYTE(c) 将指定字符转换为全角并返回char类型字串
例如:SELECT TO_MULTI_BYTE('ABC abc 中华') FROM DUAL;
6、TO_SINGLE_BYTE(c) 将指定字符转换为半角并返回char类型字串
例如:SELECT TO_SINGLE_BYTE('ABC abc中华') FROM DUAL;
(六).其它辅助函数(Miscellaneous Single-Row Functions)
1、COALESCE(n1,n2,....n) 返回序列中的第一个非空值
例如:SELECT COALESCE(null,5,6,null,9) FROM DUAL;
2、DUMP(exp[,fmt[,start[,length]]])
dump是个功能非常强悍的函数,对于深入了解oracle存储的人而言相当有用。所以对于我们这些仅仅只是应用的人而言就不知道能将其应用于何处了。此处仅介绍用法,不对其功能做深入分析。
如上所示,dump拥有不少参数。其本质是以指定格式,返回指定长度的exp的内部表示形式的varchar2值。fmt含4种格式:8||10||16||17,分别表示8进制,10进制,16进制和单字符,默认为10进制。start参数表示开始位置,length表示以,分隔的字串数。
例如:SELECT DUMP('abcdefg',17,2,4) FROM DUAL;
3、EMPTY_BLOB,EMPTY_CLOB 这两个函数都是返回空lob类型,通常被用于insert和update等语句以初始化lob列,或者将其置为空。EMPTY表示LOB已经被初始化,只不过还没有用来存储数据。
4、NLS_CHARSET_NAME(n) 返回指定数值对应的字符集名称。
例如:SELECT NLS_CHARSET_NAME(1) FROM DUAL;
5、NLS_CHARSET_ID(c) 返回指定字符对应的字符集id。
例如:SELECT NLS_CHARSET_ID('US7ASCII') FROM DUAL;
6、NLS_CHARSET_DECL_LEN(n1,n2) 返回一个NCHAR值的声明宽度(以字符为单位).n1是该值以字节为单位的长度,n2是该值的字符集ID
例如:SELECT NLS_CHARSET_DECL_LEN(100, nls_charset_id('US7ASCII')) FROM DUAL;
7、SYS_EXTRACT_UTC(timestamp) 返回标准通用时间即格林威治时间。
例如:SELECT SYS_EXTRACT_UTC(current_timestamp) FROM DUAL;
8、SYS_TYPEID(object_type) 返回对象类型对应的id。
例如:这个这个,没有建立过自定义对象,咋做示例?
9、UID 返回一个唯一标识当前数据库用户的整数。
例如:SELECT UID FROM DUAL;
10、USER 返回当前session用户
例如:SELECT USER FROM DUAL;
11、USERENV(c) 该函数用来返回当前session的信息,据oracle文档的说明,userenv是为了保持向下兼容的遗留函数。oracle公司推荐你使用sys_context函数调用USERENV命名空间来获取相关信息,所以大家了解下就行了。
例如:SELECT USERENV('LANGUAGE') FROM DUAL;
12、VSIZE(c) 返回c的字节数。
例如:SELECT VSIZE('abc中华') FROM DUAL;
注:N表示数字型,C表示字符型,D表示日期型,[]表示内中参数可被忽略,fmt表示格式。
单值函数在查询中返回单个值,可被应用到select,where子句,start with以及connect by 子句和having子句。
(一).数值型函数(Number Functions)
数值型函数输入数字型参数并返回数值型的值。多数该类函数的返回值支持38位小数点,诸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小数点。ACOS, ASIN, ATAN, and ATAN2支持30位小数点。
1、ABS(n) 返回数字的绝对值
例如:SELECT ABS(-1000000.01) FROM DUAL;
2、COS(n) 返回n的余弦值
例如:SELECT COS(-2) FROM DUAL;
3、ACOS(n) 反余弦函数,n between -1 and 1,返回值between 0 and pi。
例如:SELECT ACOS(0.9) FROM DUAL;
4、BITAND(n1,n2) 位与运算,这个太有意思了,虽然没想到可能用到哪里,详细说明一下:
假设3,9做位与运算,3的二进制形式为:0011,9的二进制形式为:1001,则结果是0001,转换成10进制数为1。
例如:SELECT BITAND(3,9) FROM DUAL;
5、CEIL(n) 返回大于或等于n的最小的整数值
例如:SELECT ceil(18.2) FROM DUAL;
考你一下,猜猜ceil(-18.2)的值会是什么呢
6、FLOOR(n) 返回小于等于n的最大整数值
例如:SELECT FLOOR(2.2) FROM DUAL;
再猜猜floor(-2.2)的值会是什么呢
7、BIN_TO_NUM(n1,n2,....n) 二进制转向十进制
例如:SELECT BIN_TO_NUM(1),BIN_TO_NUM(1,0),BIN_TO_NUM(1,1) FROM DUAL;
8、SIN(n) 返回n的正玄值,n为弧度。
例如:SELECT SIN(10) FROM DUAL;
9、SINH(n) 返回n的双曲正玄值,n为弧度。
例如:SELECT SINH(10) FROM DUAL;
10、ASIN(n) 反正玄函数,n between -1 and 1,返回值between pi/2 and -pi/2。
例如:SELECT ASIN(0.8) FROM DUAL;
11、TAN(n) 返回n的正切值,n为弧度
例如:SELECT TAN(0.8) FROM DUAL;
12、TANH(n) 返回n的双曲正切值,n为弧度
例如:SELECT TANH(0.8) FROM DUAL;
13、ATAN(n) 反正切函数,n表示弧度,返回值between pi/2 and -pi/2。
例如:SELECT ATAN(-444444.9999999) FROM DUAL;
14、EXP(n) 返回e的n次幂,e = 2.71828183 ...
例如:SELECT EXP(3) FROM DUAL;
15、LN(n) 返回n的自然对数,n>0
例如:SELECT LN(0.9) FROM DUAL;
16、LOG(n1,n2) 返回以n1为底n2的对数,n1 >0 and not 1 ,n2>0
例如:SELECT LOG(1.1,2.2) FROM DUAL;
17、POWER(n1,n2) 返回n1的n2次方。n1,n2可以为任意数值,不过如果m是负数,则n必须为整数
例如:SELECT POWER(2.2,2.2) FROM DUAL;
18、SIGN(n) 如果n<0返回-1,如果n>0返回1,如果n=0返回0.
例如:SELECT SIGN(14),SIGN(-14),SIGN(0) FROM DUAL;
19、SQRT(n) 返回n的平方根,n为弧度。n>=0
例如:SELECT SQRT(0.1) FROM DUAL;
(二).字符型函数返回字符值(Character Functions Returning Character Values)
该类函数返回与输入类型相同的类型。
? 返回的CHAR类型值长度不超过2000字节;
? 返回的VCHAR2类型值长度不超过4000字节;
如果上述应返回的字符长度超出,oracle并不会报错而是直接截断至最大可支持长度返回。
? 返回的CLOB类型值长度不超过4G;
对于CLOB类型的函数,如果返回值长度超出,oracle不会返回任何错误而是直接抛出错误。
1、CHR(N[ USING NCHAR_CS]) 返回指定数值在当前字符集中对应的字符
例如:SELECT CHR(95) FROM DUAL;
2、CONCAT(c1,c2) 连接字符串,等同于||
例如:SELECT concat('aa','bb') FROM DUAL;
3、INITCAP(c) 将字符串中单词的第一个字母转换为大写,其它则转换为小写
例如:SELECT INITCAP('whaT is this') FROM DUAL;
4、NLS_INITCAP(c) 返回指定字符串,并将字符串中第一个字母变大写,其它字母变小写
例如:SELECT NLS_INITCAP('中华miNZHu') FROM DUAL;
它还具有一个参数:Nlsparam用来指定排序规则,可以忽略,默认状态该参数为当前session的排序规则。
(三).字符型函数返回数字值(Character Functions Returning Number Values)
本类函数支持所有的数据类型
1、ASCII(c) 与chr函数的用途刚刚相反,本函数返回指定字符在当前字符集下对应的数值。
例如:SELECT ASCII('_') FROM DUAL;
(四).日期函数(Datetime Functions)
本类函数中,除months_between返回数值外,其它都将返回日期。
1、CURRENT_TIMESTAMP([n]) 返回当前session所在时区的日期和时间。n表示毫秒级的精度,不大于6
例如:SELECT CURRENT_TIMESTAMP(3) FROM DUAL;
2、LOCALTIMESTAMP([n]) 与上同,返回当前session所在时区的日期和时间。n表示毫秒级的精度,不大于6
例如:SELECT LOCALTIMESTAMP(3) FROM DUAL;
3、SYSTIMESTAMP([n]) 与上同,返回当前数据库所在时区的日期和时间,n表示毫秒级的精度,>0 and <6
例如:SELECT SYSTIMESTAMP(4) FROM DUAL;
4、DBTIMEZONE 返回数据库的当前时区
例如:SELECT DBTIMEZONE FROM DUAL;
5、SESSIONTIMEZONE 返回当前session所在时区
例如:SELECT SESSIONTIMEZONE FROM DUAL;
6、EXTRACT(key from date) key=(year,month,day,hour,minute,second) 从指定时间提到指定日期列
例如:SELECT EXTRACT(year from sysdate) FROM DUAL;
7、TO_TIMESTAMP(c1[,fmt]) 将指定字符按指定格式转换为timestamp格式。
例如:SELECT TO_TIMESTAMP('2007-8-22', 'YYYY-MM-DD HH:MI:SS') FROM DUAL;
(五).转换函数(Conversion Functions)
转换函数将指定字符从一种类型转换为另一种,通常这类函数遵循如下惯例:函数名称后面跟着待转换类型以及输出类型。
1、BIN_TO_NUM(n1,n2...n) 将一组位向量转换为等价的十进制形式。
例如:SELECT BIN_TO_NUM(1,1,0) FROM DUAL;
2、CAST(c as newtype) 将指定字串转换为指定类型,基本只对字符类型有效,比如char,number,date,rowid等。此类转换有一个专门的表列明了哪种类型可以转换为哪种类型,此处就不作酹述。
例如:SELECT CAST('1101' AS NUMBER(5)) FROM DUAL;
3、CHARTOROWID(c) 将字符串转换为rowid类型
例如:SELECT CHARTOROWID('A003D1ABBEFAABSAA0') FROM DUAL;
4、ROWIDTOCHAR(rowid) 转换rowid值为varchar2类型。返回串长度为18个字节。
例如:SELECT ROWIDTOCHAR(rowid) FROM DUAL;
5、TO_MULTI_BYTE(c) 将指定字符转换为全角并返回char类型字串
例如:SELECT TO_MULTI_BYTE('ABC abc 中华') FROM DUAL;
6、TO_SINGLE_BYTE(c) 将指定字符转换为半角并返回char类型字串
例如:SELECT TO_SINGLE_BYTE('ABC abc中华') FROM DUAL;
(六).其它辅助函数(Miscellaneous Single-Row Functions)
1、COALESCE(n1,n2,....n) 返回序列中的第一个非空值
例如:SELECT COALESCE(null,5,6,null,9) FROM DUAL;
2、DUMP(exp[,fmt[,start[,length]]])
dump是个功能非常强悍的函数,对于深入了解oracle存储的人而言相当有用。所以对于我们这些仅仅只是应用的人而言就不知道能将其应用于何处了。此处仅介绍用法,不对其功能做深入分析。
如上所示,dump拥有不少参数。其本质是以指定格式,返回指定长度的exp的内部表示形式的varchar2值。fmt含4种格式:8||10||16||17,分别表示8进制,10进制,16进制和单字符,默认为10进制。start参数表示开始位置,length表示以,分隔的字串数。
例如:SELECT DUMP('abcdefg',17,2,4) FROM DUAL;
3、EMPTY_BLOB,EMPTY_CLOB 这两个函数都是返回空lob类型,通常被用于insert和update等语句以初始化lob列,或者将其置为空。EMPTY表示LOB已经被初始化,只不过还没有用来存储数据。
4、NLS_CHARSET_NAME(n) 返回指定数值对应的字符集名称。
例如:SELECT NLS_CHARSET_NAME(1) FROM DUAL;
5、NLS_CHARSET_ID(c) 返回指定字符对应的字符集id。
例如:SELECT NLS_CHARSET_ID('US7ASCII') FROM DUAL;
6、NLS_CHARSET_DECL_LEN(n1,n2) 返回一个NCHAR值的声明宽度(以字符为单位).n1是该值以字节为单位的长度,n2是该值的字符集ID
例如:SELECT NLS_CHARSET_DECL_LEN(100, nls_charset_id('US7ASCII')) FROM DUAL;
7、SYS_EXTRACT_UTC(timestamp) 返回标准通用时间即格林威治时间。
例如:SELECT SYS_EXTRACT_UTC(current_timestamp) FROM DUAL;
8、SYS_TYPEID(object_type) 返回对象类型对应的id。
例如:这个这个,没有建立过自定义对象,咋做示例?
9、UID 返回一个唯一标识当前数据库用户的整数。
例如:SELECT UID FROM DUAL;
10、USER 返回当前session用户
例如:SELECT USER FROM DUAL;
11、USERENV(c) 该函数用来返回当前session的信息,据oracle文档的说明,userenv是为了保持向下兼容的遗留函数。oracle公司推荐你使用sys_context函数调用USERENV命名空间来获取相关信息,所以大家了解下就行了。
例如:SELECT USERENV('LANGUAGE') FROM DUAL;
12、VSIZE(c) 返回c的字节数。
例如:SELECT VSIZE('abc中华') FROM DUAL;
posted @ 2007-11-21 10:34
克林顿 阅读(1005) |
评论 (0) |
编辑 收藏
数值函数:
abs(m) m的绝对值
mod(m,n) m被n除后的余数
power(m,n) m的n次方
round(m[,n]) m四舍五入至小数点后n位的值(n缺省为0)
trunc(m[,n]) m截断n位小数位的值(n缺省为0)
--------------------------------------------------------------------------------
字符函数:
initcap(st) 返回st将每个单词的首字母大写,所有其他字母小写
lower(st) 返回st将每个单词的字母全部小写
upper(st) 返回st将每个单词的字母全部大写
concat(st1,st2) 返回st为st2接st1的末尾(可用操作符"||")
lpad(st1,n[,st2]) 返回右对齐的st,st为在st1的左边用st2填充直至长度为n,st2的缺省为空格
rpad(st1,n[,st2]) 返回左对齐的st,st为在st1的右边用st2填充直至长度为n,st2的缺省为空格
ltrim(st[,set]) 返回st,st为从左边删除set中字符直到第一个不是set中的字符。缺省时,指的是空格
rtrim(st[,set]) 返回st,st为从右边删除set中字符直到第一个不是set中的字符。缺省时,指的是空格
replace(st,search_st[,replace_st]) 将每次在st中出现的search_st用replace_st替换,返回一个st。缺省时,删除search_st
substr(st,m[,n]) n=返回st串的子串,从m位置开始,取n个字符长。缺省时,一直返回到st末端
length(st) 数值,返回st中的字符数
instr(st1,st2[,m[,n]]) 数值,返回st1从第m字符开始,st2第n次出现的位置,m及n的缺省值为1
例:
1.
select initcap('THOMAS'),initcap('thomas') from test;
initca initca
------ ------
Thomas Thomas
2.
select concat('abc','def') "first" from test;
first
-----
abcdef
3.
select 'abc'||' '||'def' "first" from test;
first
-----
abc def
4.
select lpad(name,10),rpad(name,5,'*') from test;
lpad(name,10) rpad(name,5,'*')
------------ ----------------
mmx mmx**
abcdef abcde
5.
去掉地址字段末端的点及单词st和rd
select rtrim(address,'. st rd') from test
6.
select name,replace(name,'a','*') from test;
name replace(name,'a','*')
---- ---------------------
great gre*t
7.
select substr('archibald bearisol',6,9) a,substr('archibald bearisol',11) b from test;
a b
------- -------
bald bear bearisol
8.
select name,instr(name,' ') a,instr(name,' ',1,2) b from test;
name a b
------- -------- ---------
li lei 3 0
l i l 2 4
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
转换函数:
nvl(m,n) 如果m值为null,返回n,否则返回m
to_char(m[,fmt]) m从一个数值转换为指定格式的字符串fmt缺省时,fmt值的宽度正好能容纳所有的有效数字
to_number(st[,fmt]) st从字符型数据转换成按指定格式的数值,缺省时数值格式串的大小正好为整个数
附:
to_char()函数的格式:
---------------------------------
符号 说明
---------------------------------
9 每个9代表结果中的一位数字
0 代表要显示的先导0
$ 美元符号打印在数的左边
L 任意的当地货币符号
. 打印十进制的小数点
, 打印代表千分位的逗号
---------------------------------
例:
1.
select to_number('123.45')+to_number('234.56') form test;
to_number('123.45')+to_number('234.56')
----------------------------------------
358.01
2.
select to_char(987654321) from test;
to_char(987654321)
------------------
987654321
3.
select to_char(123,'$9,999,999') a,to_char(54321,'$9,999,999') b,to_char(9874321,'$9,999,999') c from test;
a b c
------- ---------- -----------
$123 $54,321 $9,874,321
4.
select to_char(1234.1234,'999,999.999') a,to_char(0.4567,'999,999.999') b,to_char(1.1,'999,999.999') from test;
a b c
--------- ---------- ------------
1,234.123 .457 1.100
--------------------------------------------------------------------------------
分组函数:
avg([distinct/all] n) 列n的平均值
count([all] *) 返回查询范围内的行数包括重复值和空值
count([distinct/all] n) 非空值的行数
max([distinct/all] n) 该列或表达式的最大值
min([distinct/all] n) 该列或表达式的最小值
stdev([distinct/all] n) 该列或表达式的标准偏差,忽略空值
sum([distinct/all] n) 该列或表达式的总和
variance([distinct/all] n) 该列或表达式的方差,忽略空值
--------------------------------------------------------------------------------
日期函数:
>
add_months(d,n) 日期d加n个月
last_day(d) 包含d的月份的最后一天的日期
month_between(d,e) 日期d与e之间的月份数,e先于d
new_time(d,a,b) a时区的日期和时间d在b时区的日期和时间
next_day(d,day) 比日期d晚,由day指定的周几的日期
sysdate 当前的系统日期和时间
greatest(d1,d2,...dn) 给出的日期列表中最后的日期
least(d1,k2,...dn) 给出的日期列表中最早的日期
to_char(d [,fmt]) 日期d按fmt指定的格式转变成字符串
to_date(st [,fmt]) 字符串st按fmt指定的格式转成日期值,若fmt忽略,st要用缺省格式
round(d [,fmt]) 日期d按fmt指定格式舍入到最近的日期
trunc(d [,fmt]) 日期d按fmt指定格式截断到最近的日期
附:
日期格式:
--------------------------------
格式代码 说明 举例或可取值的范围
--------------------------------
DD 该月某一天 1-3
DY 三个大写字母表示的周几 SUN,...SAT
DAY 完整的周几,大写英文 SUNDAY,...SATURDAY
MM 月份 1-12
MON 三个大写字母表示的月份 JAN,...DEC
MONTH 完整 JANUARY,...DECEMBER
RM 月份的罗马数字 I,...XII
YY或YYYY 两位,四位数字年
HH:MI:SS 时:分:秒
HH12或HH24 以12小时或24小时显示
MI 分
SS 秒
AM或PM 上下午指示符
SP 后缀SP要求拼写出任何数值字段
TH 后缀TH表示添加的数字是序数 4th,1st
FM 前缀对月或日或年值,禁止填充
---------------------------------
例:
1.
下一个周五的日期
select next_day(sysdate,6) from test;
2.
两个月前的今天的日期
select add_months(sysdate,-2) from test;
posted @ 2007-11-21 10:32
克林顿 阅读(200) |
评论 (0) |
编辑 收藏