这个SQL TO_CHAR函数如何工作?

时间:2015-07-24 04:11:35

标签: sql

我正在攻读SQL考试,我在the study-guide中看到以下代码作为正确答案;

UPDATE promotions
SET promo_cost = promo_cost + 100
WHERE TO_CHAR(promo_end_date, 'yyyy'>'2000';

此代码如何工作?我指的是它的TO_CHAR部分。这也是缺少的括号:

WHERE TO_CHAR(promo_end_date, 'yyyy') > '2000';

谢谢!

2 个答案:

答案 0 :(得分:2)

我不确定,如果输入错误,但您错过了)

UPDATE promotions
SET promo_cost = promo_cost + 100
WHERE TO_CHAR(promo_end_date, 'yyyy') > '2000';

答案 1 :(得分:2)

您提供的示例采用日期变量promo_end_date和日期格式'yyyy'并返回所提供格式的字符串,因此只是日期的'yyyy'部分。 因此TO_CHAR(promo_end_date, 'yyyy')会返回年份4位数年份,例如(2000年,2001年,1990年等)

对于结尾数据大于2000的所有宣传片,update语句应该将promo_cost增加100.希望这会有所帮助。

您可以在Oracle SQL中试用它:

select TO_CHAR('01-JAN-99', 'mm/dd/yyyy') from dual; --should return the string '01/01/1999'
select TO_CHAR('20-APR-15', 'dd/mm') from dual; --should return '04/20'

您应该检查Oracle文档,所有内置函数都有详细记录:http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions180.htm