如何将日期设置为“MM / DD / YYYY”格式和以下查询的“百分比”结果
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将日期设置为“MM / DD / YYYY”格式和以下查询的“百分比”结果相关的知识,希望对你有一定的参考价值。
这是我的查询,我正在大脑冻结如何转换结果以反映日期为“MM / DD / YYYY”格式,以便结果打印出百分比而不是十进制输出。
c.execute("""WITH num_requests AS (
SELECT time::date AS day, count(*)
FROM log
GROUP BY time::date
ORDER BY time::date
), num_errors AS (
SELECT time::date AS day, count(*)
FROM log
WHERE status != '200 OK'
GROUP BY time::date
ORDER BY time::date
), error_rate AS (
SELECT num_requests.day,
num_errors.count::float / num_requests.count::float * 100
AS error_pc
FROM num_requests, num_errors
WHERE num_requests.day = num_errors.day
)
SELECT * FROM error_rate WHERE error_pc > 1
""")
答案
PostgreSQL date默认格式为YYYY-MM-DD。如果日期以相同的格式存储为字符串,则可以将typecast设为日期,就像使用::date
一样。将它作为日期,您可以使用to_char函数将其再次格式化为文本字符串。
to_char(time::date,'mm/dd/yyyy')
相同的to_char函数将帮助您将百分比表示为一个数字。但是,如果数字是一个比率而不是一个百分比,那么你需要进行乘法运算:
to_char(100*rate,'FM999.90"%"') AS pct
但是,我建议从宿主语言(Java,Python等)中控制和执行格式化。我认为将格式化从SQL中删除是一种更简洁的方法。
以上是关于如何将日期设置为“MM / DD / YYYY”格式和以下查询的“百分比”结果的主要内容,如果未能解决你的问题,请参考以下文章
如何将日期设置为“MM / DD / YYYY”格式和以下查询的“百分比”结果
当日期为空时,如何在日期输入字段中显示设置为“mm/dd/yyyy”而不是“1/1/0001”的占位符?
google-bigquery 在查询结果中将日期格式设置为 mm/dd/yyyy