【发布时间】:2023-01-24 00:54:55
【问题描述】:
我有一张桌子multi_app_documentation.nsma1_ans员工以两位数和四位数字年份格式输入日期。当我尝试使用 TO_DATE 转换它时,我的 WHERE 语句中出现错误:
错误:“DD”的无效值“/1” 详细信息:值必须是整数。
当员工不使用四位数年份时,我怎样才能让我的查询工作?他们可以输入 01232023 或 01/23/23。我假设我必须编写一个函数。作为 Postgresql 的新手,这不是我以前没有做过的事情。任何帮助深表感谢。
SELECT CASE WHEN multi_app_documentation.nsma1_code = 'DATE' THEN TO_DATE(multi_app_documentation.nsma1_ans, 'MMDDYYYY') END AS "Procedure Date", ' ' AS "Case Confirmation Number", ip_visit_1.ipv1_firstname AS "Patient First", ip_visit_1.ipv1_lastname AS "Patient Last", visit.visit_sex AS "Patient Gender", TO_CHAR(visit.visit_date_of_birth, 'MM/DD/YYYY') AS "DOB", visit.visit_id AS "Account Number", visit.visit_mr_num AS "MRN", ' ' AS "Module", ' ' AS "Signed off DT", CASE WHEN multi_app_documentation.nsma1_code = 'CRNA' THEN multi_app_documentation.nsma1_ans END AS "Primary CRNA", ' ' AS "Secondary CRNA", ' ' AS "Primary Anesthesiologist", ' ' AS "Secondary Anesthesiologist", ' ' AS "Canceled Yes/No" FROM multi_app_documentation INNER JOIN ip_visit_1 ON multi_app_documentation.nsma1_patnum = ip_visit_1.ipv1_num INNER JOIN visit ON ip_visit_1.ipv1_num = visit.visit_id WHERE multi_app_documentation.nsma1_code = 'DATE' AND TO_DATE(multi_app_documentation.nsma1_ans, 'MMDDYYYY') = CURRENT_DATE ORDER BY ip_visit_1.ipv1_lastname;
【问题讨论】:
标签: postgresql