GBase数据库-数据转换函数
可以在使用表达式的任何地方使用数据转换函数。
下列转换函数在日期与字符串之间转换:
DATE 函数
DATE 函数将字符串转换为 DATE 值。在以下查询中, DATE 函数将字符串转换为 DATE值,以允许与 DATETIME 值进行比较。仅当 call_dtime值比指定的 DATE 晚时查询才会检索 DATETIME 值。
查询:
SELECT customer_num, call_dtime, res_dtime
FROM cust_calls
WHERE call_dtime > DATE ('12/31/97');
查询结果:
customer_num call_dtime res_dtime
106 1998-06-12 08:20 1998-06-12 08:25
110 1998-07-07 10:24 1998-07-07 10:30
119 1998-07-01 15:00 1998-07-02 08:21
121 1998-07-10 14:05 1998-07-10 14:06
127 1998-07-31 14:30
仅当 call_dtime 大于或等于指定日期时,下列查询才会将 DATETIME 值转换为 DATE 格式并带标签显示这些值。
查询:
SELECT customer_num,
DATE (call_dtime) called,
DATE (res_dtime) resolved
FROM cust_calls
WHERE call_dtime >= DATE ('1/1/98');
查询结果:
customer_num called resolved
106 06/12/1998 06/12/1998
110 07/07/1998 07/07/1998
119 07/01/1998 07/02/1998
121 07/10/1998 07/10/1998
127 07/31/1998
TO_CHAR 函数
TO_CHAR 函数将 DATETIME 或 DATE 值转换为字符串值。
TO_CHAR 函数根据您指定的日期格式化伪指令对DATETIME值进行求值并返回NVARCHAR值。
还可以使用TO_CHAR函数将DATETIME或DATE值转换为LVARCHAR值。
下列查询使用TO_CHAR函数将DATETIME值转换为可读性更强的字符串。
查询:
SELECT customer_num,
TO_CHAR(call_dtime, "%A %B %d %Y") call_date
FROM cust_calls
WHERE call_code = "B";
查询结果:
customer_num 119
call_date Friday July 01 1998
下列查询使用 TO_CHAR 函数将 DATE 值转换为可读性更强的字符串。
查询:
SELECT order_num,
TO_CHAR(ship_date,"%A %B %d %Y") date_shipped
FROM orders
WHERE paid_date IS NULL;
查询结果:
order_num 1004
date_shipped Monday May 30 1998
order_num 1006
date_shipped
order_num 1007
date_shipped Sunday June 05 1998
order_num 1012
date_shipped Wednesday June 29 1998
order_num 1016
date_shipped Tuesday July 12 1998
order_num 1017
date_shipped Wednesday July 13 1998
TO_CHAR 函数还可以格式化数字值。
TO_DATE 函数
TO_DATE 函数接受字符数据类型的参数并将此值转换为DATETIME值。
TO_DATE 函数根据您指定的日期格式化伪指令对字符串求值并返回DATETIME值。
还可以使用 TO_DATE 函数将 LVARCHAR 值转换为 DATETIME 值。
下列查询使用 TO_DATE 函数将字符串转换为指定格式的 DATETIME 值。
查询:
SELECT customer_num, call_descr
FROM cust_calls
WHERE call_dtime = TO_DATE("2008-07-07 10:24",
"%Y-%m-%d %H:%M");
查询结果:
customer_num 110
call_descr Order placed one month ago (6/7) not received.
可以使用 DATE 或 TO_DATE 函数来将字符串转换为 DATE 值。 TO_DATE 函数的一个优点是它允许您为返回的值指定格式。(可以使用 TO_DATE函数(它总是返回 DATETIME值)来将字符串转换为 DATE 值,原因是数据库服务器隐式处理 DATE 和 DATETIME值之间的转换。)