mysql - 使用phpMyAdmin SQL查询的日期显示格式
问题描述
当我在 phpMyAdmin 中运行我的 SQL 时,我的日期时间字段 (pm_expense_ledger.hos_date) 以这种格式显示:2019-10-01 00:00:00
虽然这不是最终用户 GUI,但我如何格式化日期时间字段以仅显示为 DDMMMYYYY ("%d %b %Y"),因为我在运行查询时不需要尖齿?
你可以看到我已经尝试了几次不成功!
代码:
SELECT pm_expense_ledger_el_connector.property_id AS PropId,
/* show FIELDS from pm_expense_ledger; to view field column types */
pm_expense_ledger.hos_date AS Date, /* this is a datetime field */
/* DATE_FORMAT('pm_expense_ledger.hos_date', '%d%b%Y') AS FDate, returns null values */
/* DATE_FORMAT("pm_expense_ledger.hos_date", "%d %b %Y %H-%i-%S") AS D1,*/
/* DATE('pm_expense_ledger.hos_date', '%d %b %Y') AS D2,*/
/* DATE("pm_expense_ledger.hos_date", "%d %b %Y") AS D3, no difference using single or double quotes */
/* DATA_TYPE('pm_expense_ledger.hos_date'),*/
pm_homeowner_statement_key.key_name AS Item,
pm_expense_ledger_description.descr AS Description,
pm_expense_ledger_el_connector.hos_total AS HOS,
pm_expense_ledger.pm_expense_ledger_id AS pmelid,
pm_expense_ledger.expense_ledger_id AS elid
FROM pm_expense_ledger_el_connector
JOIN pm_expense_ledger
on pm_expense_ledger.pm_expense_ledger_id = pm_expense_ledger_el_connector.pm_exp_ledger_id
JOIN pm_expense_ledger_description
on pm_expense_ledger_description.pm_el_description_id = pm_expense_ledger.pm_exp_ledg_descr_id
JOIN pm_homeowner_statement_key
on pm_homeowner_statement_key.pm_hos_key_id = pm_expense_ledger.pm_hos_key_id
where pm_expense_ledger.hos_date BETWEEN '2019,12,01' and '2019,12,31'
/*group by pm_expense_ledger_el_connector.property_id*/
order by pm_expense_ledger_el_connector.property_id ASC, pm_expense_ledger.hos_date ASC, pm_expense_ledger_id ASC;
解决方案
你要:
DATE_FORMAT(pm_expense_ledger.hos_date, '%d%b%Y') AS FDate
以下尝试很接近:
DATE_FORMAT('pm_expense_ledger.hos_date', '%d%b%Y')
它失败是因为列名周围有单引号,这使它成为一个字符串;由于此字符串无法转换为 a datetime
,因此会date_format()
产生一个null
值。
底线:在 MySQL 中,不要在标识符周围使用引号(单引号或双引号);如果出于某种原因需要引用标识符(因为它包含特殊字符),则需要使用反引号 (`)。
推荐阅读
- wordpress - Wordpress Woocommerce 报告页面问题
- c++11 - C ++:'operator ='的模棱两可的重载
- angular - 如何解决 TypeError:无法读取未定义的属性“0”?
- android - 如何在成功和错误时延迟 RxJava 订阅?
- reactjs - React + Typescript:如何输入 event.target.name 来声明?
- c# - 登录.Net核心控制台应用程序不起作用
- css - Chrome DevTools 通过样式面板持续更改
- php - 如何使用方法获得运费
- jasper-reports - Javascript 中的 JasperReports 条件样式
- php - 提交的表单不包含 type='submit' 参数