SELECT day(`date`) day,
count(*) question_cnt
FROM question_practice_detail
WHERE date_format(`date`, '%Y%m') = 202108
GROUP BY day(`date`);
数值 ↔ 字符串 (Number ⇄ String)
- MySQL:数转字:CAST(123 AS CHAR) 或 CONVERT(123, CHAR)字转数:CAST('123' AS SIGNED) (有符号整数), CAST('123.45' AS DECIMAL(10,2))
- Hive / Spark:数转字:CAST(123 AS STRING) 或快捷函数 STRING(123)字转数:CAST('123' AS INT), DOUBLE('123.45')
- PostgreSQL:特色语法:123::TEXT, '123'::INT (双冒号写法非常流行)标准写法:CAST('123' AS INTEGER)
- Oracle:特色函数:TO_CHAR(123), TO_NUMBER('123') (Oracle 很少用 CAST 做这个)
字符串 ↔ 日期 (String ⇄ Date)
- MySQL:字转日:STR_TO_DATE('2023-01-01', '%Y-%m-%d') (注意 %Y)日转字:DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')
- Hive / Spark:字转日:TO_DATE('2023-01-01') (默认格式) 或 UNIX_TIMESTAMP('...', 'yyyy-MM-dd')日转字:FROM_UNIXTIME(UNIX_TIMESTAMP(), 'yyyy-MM-dd')
- PostgreSQL / Oracle:字转日:TO_DATE('2023-01-01', 'YYYY-MM-DD') (注意 YYYY)日转字:TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
YEAR() 函数是 MySQL 和 Hive/Spark SQL 通用的写法。Oracle❌ 不支持 需用 EXTRACT或 TO_CHAR

京公网安备 11010502036488号