SQL轉換函式to char to date to

2021-09-06 16:11:29 字數 3480 閱讀 1032

日期型->字元型轉換函式to_char(d [,fmt])函式to_char(d [,fmt])用於將日期型數值轉換為字串(varchar2型別),其中引數d用於指定日期值,fmt用於指定要轉換成的字串的格式,也稱模式串。如不給出引數fmt則系統會預設採用與所在語言環境相關的預設格式。模式串中的字母(a~z, a~z)也稱日期模式符,被保留使用——相當於關鍵字,其中大部分被賦予特定含義,在對日期型數字的轉換/解析過程中這些模式符將被替換成相應的時間域資訊,表4-5列出了常用格式符及其含義。

常用日期模式符

格式符 說明 舉例

yyyy 年份 2008

mm 用數字顯示月份 02

dd 在當月中是第幾天 28

day 星期幾 星期五

am / pm 顯示上午/下午 上午

hh / hh12 / hh24 小時 / 12小時制 / 24小時制 2:30 14:30

mi 分鐘 30

ss 秒鐘 46

select empno,hiredate,to_char(hiredate),to_char(hiredate,'yyyy-mm-dd') from emp;

empno hiredate to_char(hiredate) to_char(hiredate,'yyyy-mm-dd')

7369 1980/12/17 17-dec-80 1980-12-17

7499 1981/2/20 20-feb-81 1981-02-20

7521 1981/2/22 22-feb-81 1981-02-22

7566 1981/4/2 02-apr-81 1981-04-02

7654 1981/9/28 28-sep-81 1981-09-28

7698 1981/5/1 01-may-81 1981-05-01

7782 1981/6/9 09-jun-81 1981-06-09

7788 1987/4/19 19-apr-87 1987-04-19

7839 1981/11/17 17-nov-81 1981-11-17

7844 1981/9/8 08-sep-81 1981-09-08

7876 1987/5/23 23-may-87 1987-05-23

7900 1981/12/3 03-dec-81 1981-12-03

7902 1981/12/3 03-dec-81 1981-12-03

7934 1982/1/23 23-jan-82 1982-01-23

select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual; --2014-06-14 05:54:50

select to_char(sysdate,'yyyy/mm/dd hh:mi:ss') from dual; --2014/06/14 05:54:38

select to_char(sysdate,'fmyyyy/mm/dd hh:mi:ss') from dual; --在模式串開頭使用fm標記以去掉數字前面的零2014/6/14 5:55:56

select to_char(sysdate,'yyyy "year" mm "month" dd "week" day am hh:mi:ss') from dual --2014 year 06 month 14 week saturday pm 05:59:25 --2014 year 06 month 14 day saturday pm 05:59:25 --------語句中輸入的是am,結果顯示為pm?oracle會智慧型判斷應該顯示什麼?

字元型->日期型轉換函式to_date(char [,fmt])和前面的to_char()函式相對應,函式to_char(char[,fmt])用於將字串型數值轉換為日期型(date型別),其中引數char用於指定匹配於日期資料的字串,模式串fmt用於指定日期模式、即按照何種模式解析前面的字串,如不給出引數fmt則會按照當前語言環境相關的預設格式進行解析。例如:

drop table users;

create table users(name varchar2(20), birth date);

insert into users values('張三', '24-2月-2009');

insert into users values('張三', to_date('24-2月-2009'));

insert into users values('李四', to_date('2016-08-30', 'yyyy-mm-dd '));

其中,前兩條insert語句完全等價,第一條語句中也是隱含呼叫了to_date()函式——先將匹配系統預設日期模式的字串'24-2月-2009'轉換為date型別、再執行新資料記錄的插入操作。但如果字串的格式不匹配則會出錯。

數值型->字元型轉換函式to_char(n [,fmt])函式to_char(n [,fmt])可將數字值轉換為varchar2型資料,通常用於數字值的格式化顯示。其中引數n用於指定數字值,引數fmt用於指定轉換成的格式,其性質及用法與前面的日期模式串類似,具體如表4-6所示。

表4-6 數字模式符

格式符 說明

9 代表一位數字,忽略前導的0

0 代表一位數字,強制顯示0(如果位數不足,則用0補齊)

$ 放置乙個美圓符$

l 放置乙個本地貨幣符

c 放置乙個國際貨幣符號

. 小數點

, 千位指示符

select 12345.67, to_char(12345.67) as c1, to_char(12345.67,'$999,999.0000') as c2, to_char(12345.67,'$000,000,0000') as c3 from dual;

12345.67 c1 c2 c3

12345.67 12345.67 $12,345.6700 $000,001,2346

字元型->數值型轉換函式to_number(char [,fmt])與前述的to_char(n [,fmt])相對應,函式to_number(char [,fmt])的功能則是將字串型數值轉換/解析為數值型(number型別)。其中引數char用於指定要解析的字串,引數fmt用於指定按照字串的格式。如不給出引數fmt則會按照當前語言環境相關的預設格式進行解析。例如:

select to_number('12345.678901') from dual;

select to_number('$12,345.6789', '$99,999.0000') from dual;

drop table t1;

create table t1(name varchar2(20), sal number);

insert into t1 values('王五', to_number('$12,345.6789', '$99,999.0000'));

select * from t1;

SQL函式之轉換函式 CAST,Convert函式

在sql server中資料型別轉換分為兩種,分別如下 隱性轉換 sql server自動處理某些資料型別的轉換。例如,如果比較char和datetime表示式 smallint和int表示式 或不同長度的char表示式,sql server可將它們自動轉換,這種轉換稱為隱性轉換,對這些轉換不必使用...

SQL中型別轉換函式

1.cast cast 表示式 as 資料型別 select 100.0 cast 1000 as int 1100.0 預設把字串轉換成浮整形 2.convert 萬能轉換 convert 資料型別,表示式 select 100.0 convert int,1000 1100.0 預設把字串轉換成...

sql函式 漢字轉換為拼音

sql資料庫 自定義乙個函式 把下面 寫進去 功能是得到漢字拼音首字母 如下 create function fun getpy str nvarchar 4000 returns nvarchar 4000 asbegin declare word nchar 1 py nvarchar 4000...