其他一些能够在日期时间格式模型中使用的元素。标点符号用来分隔格式元素。有三种类型的后缀可以格式化日期时间元素的组件。而且,如果将字符字面值包含在双引号内,那么就能够在返回值中包含它们。使用日期12/SEP/08 14:31
格式元素
说明和格式掩码
结果
/ . , ? # ! -
标点符号:’MM.YY’
09.08
“any character literal”
字符字面值:’”Week” W “of” Month’
Week 2 of September
TH
位置或者序数文本:’DDth ”of” Month’
12TH of September
SP
拼写出数字:’MmSP month Yyyysp’
Nine September Two Thousand Eight
THSP or SPTH
拼写出位置或者序数:’hh24SpTh’
Fourteenth
使用TO_DATE函数将字符转换为日期
TO_DATE函数返回DATE类型的值。转换为日期的字符串可能包含所有或者部分组成DATE的日期时间元素。当只转换包含日期时间元素子集的字符串时,Oracle提供资金默认值来构造完整的日期。字符串的组成部分通过格式模型或掩码与不同的日期时间元素相关联。
语法:TO_DATE(string1[,format,[nls_parameter]])
只有string1参数是强制性的,如果没有提供格式掩码,string1会隐式转换为日期。几乎总是使用可选的fromat参数,在单引号内指定它,与TO_CHAR的格式掩码相同。TO_DATE函数有fx修饰,表示string1和格式掩码必须完全匹配,否则报错。
select to_date('25-DEC-2010') from dual;
select to_date('25-DEC') from dual; --错误
select to_date('25-DEC','DD-MON') from dual;
select to_date('25-DEC-2010 18:03:45','DD-MON-YYYY HH24:MI:SS') from dual;
select to_date('25-DEC-10','fxDD-MON-YYYY') from dual;--错误
TO_NUMBER函数将字符转换为数字TO_NUMBER函数返回NUMBER类型的值。转换为数字的字符串必须有合适的格式,以便用相应的格式掩码转换或删除所有非数字组成部分。
语法:TO_NUMBER(string1[,format,[nls_parameter]])
只有string1参数是强制性的,如果没有提供格式掩码,string1就必须是可以隐式转换为数字的值。用单引号指定可选的format参数。与TO_CHAR转换数字到字符串中的格式掩码相同。
select to_number('$1,000.55') from dual;--错误
select to_number('$01,000.55','$0999,999.999') from dual;
注:TO_NUMBER函数将字符项转换为数字。如果使用较短的格式掩码转换数字,就会返回错误,如果使用较长的格式掩码转换数字,就会返回原数字。
七、条件函数 NVLNVL函数评估任何数据类型的列或者表达式是不是空值。如果原始项是空值,返回备选的非空值;否则,返回原始项。
NVL函数有两个强制参数。语法:NVL(original,ifnull)。其中original表示要测试的项,如果original项计算为空,就返回ifnull。original和ifnull参数的数据类型必须一致。它们必须是相同的类型,或者可能将ifnull隐式转换为original参数的类型。NVL函数返回值的数据类型与original参数的数据类型相同。
select nvl(1234) from dual;--错误
select nvl(null,1234) from dual; ---1234
select nvl(substr('abc',4),'No substring exists') from dual;
NVL2NVL2函数是对NVL函数的增强,但功能非常类似。NVL2函数评估任何数据类型的列或者表达式是不是空值。如果第一项不是空值,那么返回第二个参数,否则返回第三个参数。