说明
对比不同数据库的语法差异
差异
数据库 | sql | 备注 |
---|---|---|
mysql | date_format(now(), ‘%Y-%m-%d %H:%i:%s’), str_to_date(‘2024-04-03 10:32:00’, ‘%Y-%m-%d %H:%i:%s’) | |
pgsql | to_char(now(), ‘yyyy-mm-dd hh24:mi:ss’), to_timestamp(‘2024-04-03 10:43:04’, ‘yyyy-mm-dd hh24:mi:ss’) | |
mongodb | dateToString(login_time, ‘%Y-%m-%d %H:%i:%s’), str_to_date(‘2024-04-03 10:32:00’, ‘%Y-%m-%d %H:%i:%s’) | 非 group by 时走 java 的 substring 实现; group by 时用 mongo aggregation <pre>{$dateToString: {date:$login_time, format:’%Y-%m-%d %H:%i:%s’} {$dateFromString: {dateString:”2024-04-03”, format: “%Y-%m-%d”}}</pre> |
es | datetime_format(now(), ‘yyyy-MM-dd HH:mm:ss’), str_to_date(‘2024-04-03 10:32:00’, ‘%Y-%m-%d %H:%i:%s’) | DATETIME_FORMAT 默认有时区问题, 会差8小时 |
hive | date_format(now(), ‘yyyy-MM-dd HH:mm:ss’) | |
presto | date_format(now(), ‘%Y-%m-%d %H:%i:%s’) | |
clickhouse | formatDateTime(now(), ‘%Y-%m-%d %H:%M:%S’), toDateTime(‘2024-04-03 10:32:00’) | 分和秒的写法与mysql 有差异, mysql是: %H:%i:%s , clickhouse是: %H:%M:%S |
Impala | date_format(now(), ‘%Y-%m-%d %H:%i:%s’), date_format(now(), ‘yyyy-MM-dd HH:mm:ss’) | |
sysql 内存计算 | date_format(now(), ‘%Y-%m-%d %H:%i:%s’), date_format(now(), ‘yyyy-MM-dd HH:mm:ss’) str_to_date(‘2024-04-03 10:32:00’, ‘%Y-%m-%d %H:%i:%s’), str_to_date(‘2024-04-03 10:32:00’, ‘yyyy-MM-dd HH:mm:ss’) |
兼容 %y-%m-%d 和 yyyy-MM-dd 两种格式 |