簡體   English   中英

在 Select 查詢中創建年和月的日期

[英]Create a date from Year and Month on a Select query

我在 Vertica 上工作

我有一個問題,看起來很簡單,但我找不到解決方法。

從查詢中,我可以得到 2 個字段“月”和“年”。 我想要的是自動選擇另一個字段,日期,我將構建為“01/月/年”(作為 sql 日期格式)。 目標是:

是)我有的

SELECT MONTH, YEAR FROM MyTable

Output

01   2020
11   2019
09   2021

我想要的是

SELECT MONTH, YEAR, *answer* FROM MyTable

Output

01   2020   01-01-2020
11   2019   01-11-2019
09   2021   01-09-2021

對不起,這看起來真的很蠢很容易,但我沒有找到任何好的方法來做到這一點。 提前致謝。

不要使用字符串操作來建立日期,你可以搞砸了事情相當:今天可能是: 16.07.202107/16/2021 ,或也2021-07-16 ,並在法國,例如: 16/07/2021 然后,您還可以左修剪零 - 或者使用“七月”而不是 07 ....

嘗試:

WITH
my_table (mth,yr) AS (
            SELECT  1, 2020
  UNION ALL SELECT 11, 2019
  UNION ALL SELECT  9, 2021
)
SELECT
  yr
, mth
, ADD_MONTHS(DATE '0001-01-01',(yr-1)*12+(mth-1)) AS firstofmonth
FROM my_table
ORDER BY 1,2;
  yr  | mth | firstofmonth 
------+-----+--------------
 2019 |  11 | 2019-11-01
 2020 |   1 | 2020-01-01
 2021 |   9 | 2021-09-01

我終於找到了一種方法:

SELECT MONTH, YEAR, CONCAT(CONCAT(YEAR, '-'), CONCAT(MONTH, '-01')) FROM MyTable

試試這個:

SELECT [MONTH], [YEAR], CONCAT(CONCAT(CONCAT('01-',[MONTH]),'-'),[YEAR]) AS [DATE] 
FROM MyTable

輸出將是:

| MONTH | YEAR |  DATE      |
|-------|------|------------|
|  01   | 2020 | 01-01-2020 |
|  11   | 2019 | 01-11-2019 |
|  09   | 2021 | 01-09-2021 |

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM