【SQL编程】Greenplum 与 MySQL 数据库获取周几函数及函数结果保持一致的方法
生活随笔
收集整理的這篇文章主要介紹了
【SQL编程】Greenplum 与 MySQL 数据库获取周几函数及函数结果保持一致的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.問題說明
項目有兩個不同的平臺分別使用 Greenplum 和 MySQL 數據庫,但是這兩個數據庫的函數是不相同的,所以需要維護兩套查詢 SQL。
2.根據周幾獲取數據
2.1 原始函數結果
MySQL獲取周幾的函數為date_format( date, '%w')結果是周一到周日為:1,2,3,4,5,6,0
-- MySQL數據庫 SELECT '周一' AS weekInfo, date_format( '2022-04-11 08:00:00', '%w') AS weekVal UNION ALL SELECT '周二' AS weekInfo, date_format( '2022-04-12 08:00:00', '%w') AS weekVal UNION ALL SELECT '周三' AS weekInfo, date_format( '2022-04-13 08:00:00', '%w') AS weekVal UNION ALL SELECT '周四' AS weekInfo, date_format( '2022-04-14 08:00:00', '%w') AS weekVal UNION ALL SELECT '周五' AS weekInfo, date_format( '2022-04-15 08:00:00', '%w') AS weekVal UNION ALL SELECT '周六' AS weekInfo, date_format( '2022-04-16 08:00:00', '%w') AS weekVal UNION ALL SELECT '周日' AS weekInfo, date_format( '2022-04-17 08:00:00', '%w') AS weekVal
Greenplum獲取周幾的函數為to_char( timestamp, 'd')結果是周一到周日為:2,3,4,5,6,1
2.2 實現函數結果一致
可以看到 MySQL 的函數獲取的結果是數值,將結果+1即可實現與 Greenplum 數據庫函數結果一致。
-- MySQL數據庫 SELECT '周一' AS weekInfo, date_format( '2022-04-11 08:00:00', '%w') +1 AS weekVal UNION ALL SELECT '周二' AS weekInfo, date_format( '2022-04-12 08:00:00', '%w') +1 AS weekVal UNION ALL SELECT '周三' AS weekInfo, date_format( '2022-04-13 08:00:00', '%w') +1 AS weekVal UNION ALL SELECT '周四' AS weekInfo, date_format( '2022-04-14 08:00:00', '%w') +1 AS weekVal UNION ALL SELECT '周五' AS weekInfo, date_format( '2022-04-15 08:00:00', '%w') +1 AS weekVal UNION ALL SELECT '周六' AS weekInfo, date_format( '2022-04-16 08:00:00', '%w') +1 AS weekVal UNION ALL SELECT '周日' AS weekInfo, date_format( '2022-04-17 08:00:00', '%w') +1 AS weekVal
Greenplum 的函數獲取的結果是字符,需要將結果轉換成數值再-1即可實現與 MySQL 數據庫函數結果一致。
兩種方式選擇一種即可。
總結
以上是生活随笔為你收集整理的【SQL编程】Greenplum 与 MySQL 数据库获取周几函数及函数结果保持一致的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Greenplum【问题记录 01】资源
- 下一篇: vectorC++索引_MySQL 的覆