【问题标题】:CONCAT created DATE columns to add DATETIME columnsCONCAT 创建了 DATE 列以添加 DATETIME 列
【发布时间】:2021-07-15 14:50:48
【问题描述】:

平台:BigQuery

我从两个单独的表中创建了两个单独的 MIN 和 MAX DATE 列 (YYYY-MM-DD)。我现在想通过以 HH:MM:SS 格式向它们添加时间来在每个列旁边添加一个附加列,以便为开始日期列和结束日期列创建 DATETIME 列。时间不存在,只是为了约定的目的,所以时间是:00:00:00。

我尝试了 'CONCAT(CAST'as DATETIME,但它似乎对我不起作用。 我没有将我的尝试添加到下面,因为我不确定它应该何时、如何或去哪里。

**

以下是我当前的查询,没有附加列:

**

distinct(table1.person_id),
LEAST(MIN(table1.AssessmentDate),MIN(table2.ContactDate)) visit_start_date,
GREATEST(MAX(table1.AssessmentDate),MAX(table2.ContactDate)) visit_end_date,
FROM `Assessmentsdataset` Assmnt
inner join Contactsdataset` Contacts
ON (
Assmnt.person_id = Contacts.person_id
)
inner join `MASTER.person` mstr_person 
ON (
Assmnt.person_id = MASTER_person.person_id    
)
group BY Assmnt.person_id```

**

 - Desired result would be

**

|person_id|visit_start_date|visit_start_datetime|visit_end_date|visit_end_datetime|
|:--------||:--------------||:------------------||:------------|:-----------------|
|   1234  |   YYYY-MM-DD   |YYYY-MM-DDT00:00:00| YYYY-MMMM-DD |YYYY-MM-DDT00:00:00|   

【问题讨论】:

    标签: sql datetime casting google-bigquery concatenation


    【解决方案1】:

    如果您希望他们成为datetimes,只需cast() 他们:

    CAST(LEAST(MIN(table1.AssessmentDate), MIN(table2.ContactDate)) AS DATETIME)
    

    你也可以使用DATETIME():

    DATETIME(LEAST(MIN(table1.AssessmentDate), MIN(table2.ContactDate)))
    

    【讨论】:

    • 噢!我怎么没想到!我很接近,但没有雪茄 - 非常感谢,这立即解决了我的问题。
    猜你喜欢
    • 2010-11-22
    • 1970-01-01
    • 2019-09-25
    • 2019-10-02
    • 2015-02-21
    • 1970-01-01
    • 2020-11-03
    • 2015-06-22
    • 1970-01-01
    相关资源
    最近更新 更多