1、获取当前时间
select current_timestamp;
返回形如'2019-01-08 14:14:10.209'的timestamp。如果想要获取yyyy-MM-dd HH:mm:ss格式的字符串,则需要用date_format。
如select date_format(current_timestamp, 'yyyy-MM-dd HH:mm:ss'); 返回'2019-01-08 14:14:10'。
select current_date; 返回形如'2019-01-08'的date
2、date_format 返回指定格式字符串。第一个参数是timestamp类型,或者string类型
如select date_format(current_timestamp, 'yyyyMMdd'); 返回'20190108'
select date_format(current_date, 'yyyyMMdd'); 返回'20190108'
select date_format('2019-01-08', 'yyyyMMdd'); 返回'20190108'
select date_format('2019-01-08 12:00:00', 'yyyyMMdd'); 返回'20190108'
3、日期加减
date_add(date/timestamp, int),返回date类型
如select date_add(current_timestamp, 1); 返回形如'2019-01-09'的date。
4、if (boolean condition, T valueTrue, T valueFalseOrNull)
如select if (1 < 2, 1, 2); 返回1
5、nvl(T value, T default_value)
如select nvl(null, 1); 返回1
6、greatest(T v1, T v2)、least(T v1, T v2),返回最大值、最小值,会忽略null
7、取字符串长度 length
如select length('abc'); 返回3
8、去左右空格 trim
如select trim(' abc '); 返回'abc'
9、字符串截取
substring、substr,用法完全一样,可以传两个参数或者三个参数
不同寻常的是,这里的索引从1开始。如
select substring('abc', 1); 返回'abc'
select substring('abc', 1, 1); 返回'a'
10、字符串拼接
concat
如select concat('a', 'b', 'c'); 返回'abc'
11、字符串转大小写
如select upper('abc'); 返回'ABC'
如select lower('ABC'); 返回'abc'
12、类型转换 cast,用法是cast(value as type)
①tinyint、smallint、int、bigint、float、double、string间相互转换
如select cast(30 as string); 返回'30'
select cast('30' as int); 返回30
②date、timestamp、string间相互转换
如select cast(current_timestamp as string); 返回'2019-01-09 10:48:17.319'
select cast(current_date as string); 返回'2019-01-09'
select cast('2019-01-09 10:48:17' as timestamp); 返回'2019-01-09 10:48:17.0'的timestamp
select cast('2019-01-09 10:48:17' as date); 返回'2019-01-09'的date