如何将日期设置为“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`

当日期为空时,如何在日期输入字段中显示设置为“mm/dd/yyyy”而不是“1/1/0001”的占位符?

google-bigquery 在查询结果中将日期格式设置为 mm/dd/yyyy

表时日期时,是用YYYY-MM-DD,还是RRRR-MM-DD

将 Access 2007 日期/时间转换为文本,将 mm/dd/yyyy 转换为 yyyy-mm-dd