Estoy usando la Colmena (que es similar a SQL, pero la sintaxis puede ser un poco diferentes para los usuarios de SQL). He mirado en el otro stackoverflow, pero que parece estar en el SQL con una sintaxis diferente.

Estoy tratando de obtener el primer día del mes a través de esta consulta. Este me da el día de hoy. Por ejemplo, si hoy es 2015-04-30, entonces el resultado sería 2015-04-01. Gracias!

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;
InformationsquelleAutor sharp | 2015-04-30

5 Comentarios

  1. 6

    Para obtener el primer día del mes, se puede utilizar:

    date_add(<date>,
             1 - day(<date>) )

    Aplicado a la expresión:

    date_add(FROM_UNIXTIME(UNIX_TIMESTAMP(), 'yyyy-MM-dd'),
             1 - day(FROM_UNIXTIME(UNIX_TIMESTAMP(), 'yyyy-MM-dd')) 
            )

    Pero esto funcionará para cualquier columna en el formato correcto.

    • Este es, en realidad me da 2015-05-29. No es el primer día del mes
    • Me fijo que. La función debería haber sido date_sub() o el signo invertido.
    • Gracias funciona ahora. Yo no uso date_sub() en cualquier lugar en la consulta. He utilizado exactamente desde arriba.
  2. 1

    Usted puede utilizar esta consulta para calcular el Primer día del mes actual

    Select date_add(last_day(add_months(current_date, -1)),1);

    Lugar de current_date, puede utilizar el campo de fecha de nombre.

    • last_day => Da el último día del mes actual
    • add_months con -1 => Da mes anterior
    • date_add con 1 => Agregar un día

Dejar respuesta

Please enter your comment!
Please enter your name here