选择HIVE中的第一天

sha*_*arp 2 sql hive hiveql

我正在使用Hive(类似于SQL,但SQL用户的语法可能略有不同).我查看了另一个stackoverflow,但它们似乎在SQL中使用不同的语法.

我试图通过这个查询获得该月的第一天.这个给了我今天的一天.例如,如果今天是2015-04-30,那么结果将是2015-04-01.谢谢!

select 
    cust_id,
    FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy-MM-dd') as first_day_of_month_transaction
--DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) as first_day_of_month_transaction --SQL format. Not compatible in Hive.
from 
    customers;
Run Code Online (Sandbox Code Playgroud)

小智 17

尝试这个

date_format(current_date,'yyyy-MM-01')
Run Code Online (Sandbox Code Playgroud)


Gor*_*off 7

要获得该月的第一天,您可以使用:

date_add(<date>,
         1 - day(<date>) )
Run Code Online (Sandbox Code Playgroud)

适用于你的表达:

date_add(FROM_UNIXTIME(UNIX_TIMESTAMP(), 'yyyy-MM-dd'),
         1 - day(FROM_UNIXTIME(UNIX_TIMESTAMP(), 'yyyy-MM-dd')) 
        )
Run Code Online (Sandbox Code Playgroud)

但这适用于任何正确格式的列.


小智 5

SELECT TRUNC(rpt.statement_date,'MM')将为您提供每月的第一天.