Esta función devuelve un valor correspondiente a una marca de tiempo del primer milisegundo del primer día de la semana natural que contiene a date. El formato de salida predefinido es el DateFormat definido en el script.
La función weekstart() determina en qué semana cae la fecha. Luego devuelve una marca de tiempo, en formato de fecha, con el primer milisegundo de esa semana. El primer día de la semana viene determinado por la variable de entorno FirstWeekDay. No obstante, esto puede ser reemplazado por el argumento de first_week_day en la función weekstart().
Argumentos
Argumento
Descripción
timestamp
La fecha o marca de tiempo para evaluar.
period_no
shift es un entero, donde el valor 0 indica la semana que contiene a date. Los valores negativos en el desplazamiento indican semanas precedentes y los valores positivos indican semanas subsiguientes.
first_week_day
Especifica el día en el que se inicia la semana. Si se omite, se utiliza el valor de la variable FirstWeekDay.
Los valores posibles de first_week_day son 0 para el lunes, 1 para el martes, 2 para el miércoles, 3 para el jueves, 4 para el viernes, 5 para el sábado y 6 para el domingo.
Para más información sobre la variable del sistema, vea FirstWeekDay.
Cuándo se utiliza
La función weekstart() se suele utilizar como parte de una expresión cuando el usuario desea que el cálculo utilice la fracción de la semana que ya ha transcurrido. Por ejemplo, se podría usar para calcular los salarios totales obtenidos por los empleados en la semana transcurrida hasta ahora.
Los siguientes ejemplos suponen:
SET FirstWeekDay=0;
Ejemplos de funciones
Ejemplo
Resultado
weekstart('01/12/2013')
Devuelve 01/07/2013.
weekstart('01/12/2013', -1 )
Devuelve 11/31/2012.
weekstart('01/12/2013', 0, 1)
Devuelve 01/08/2013.
Configuraciones regionales
A menos que se especifique algo distinto, los ejemplos de este tema utilizan el siguiente formato de fecha: MM/DD/YYYY. El formato de fecha se especifica en la sentencia SET DateFormat de su script de carga de datos. El formato de fecha predeterminado puede ser diferente en su sistema, debido a su configuración regional y otros factores. Puede cambiar el formato en los ejemplos a continuación para ajustarlo a sus necesidades. O puede cambiar los formatos en su script de carga para que coincidan con estos ejemplos. Para más información, vea Modificar la configuración regional para aplicaciones y scripts.
La configuración regional predeterminada en las aplicaciones se basa en el perfil de usuario. Estos ajustes de formato regional no están relacionados con el idioma mostrado en la interfaz de usuario de Qlik Cloud. Qlik Cloud se mostrará en el mismo idioma que esté utilizando su navegador.
Si desea configuraciones ISO para semanas y números de semana, asegúrese de tener lo siguiente en el script:
Set DateFormat ='YYYY-MM-DD';
Set FirstWeekDay =0; // Monday as first week day
Set BrokenWeeks =0; //(use unbroken weeks)
Set ReferenceDay =4; // Jan 4th is always in week 1
Si desea la configuración de EE. UU., asegúrese de tener lo siguiente en el script:
Set DateFormat ='M/D/YYYY';
Set FirstWeekDay =6; // Sunday as first week day
Set BrokenWeeks =1; //(use broken weeks)
Set ReferenceDay =1; // Jan 1st is always in week 1
Los ejemplos anteriores dan como resultado lo siguiente, de la función weekstart():
Ejemplo de la función Weekstart
Fecha
Inicio de la semana ISO
Inicio de semana en EE. UU.
Sab 2020 Dic 26
2020-12-21
12/20/2020
Dom 2020 Dic 27
2020-12-21
12/27/2020
Lun 2020 Dic 28
2020-12-28
12/27/2020
Mar 2020 Dic 29
2020-12-28
12/27/2020
Mie 2020 Dic 30
2020-12-28
12/27/2020
Jue 2020 Dic 31
2020-12-28
12/27/2020
Vie 2021 Ene 1
2020-12-28
12/27/2020
Sab 2021 Ene 2
2020-12-28
12/27/2020
Dom 2021 Ene 3
2020-12-28
1/3/2021
Lun 2021 Ene 4
2021-01-04
1/3/2021
Mar 2021 Ene 5
2021-01-04
1/3/2021
Nota informativaEl inicio de la semana es los lunes en la columna ISO y los domingos en la columna de EE. UU.
Ejemplo 1: sin argumentos adicionales
Vista general
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
Un conjunto de datos que contiene un conjunto de transacciones de 2022, que se carga en una tabla llamada "Transactions".
El campo de fecha proporcionado en el formato de la variable del sistema DateFormat: (MM/DD/AAAA).
La creación de un campo, start_of_week, que devuelve una marca de tiempo con el inicio de la semana en que las transacciones tuvieron lugar.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
start_of_week
start_of_week_timestamp
Tabla de resultados
date
start_of_week
start_of_week_timestamp
1/7/2022
01/02/2022
1/2/2022 12:00:00 AM
1/19/2022
01/16/2022
1/16/2022 12:00:00 AM
2/5/2022
01/30/2022
1/30/2022 12:00:00 AM
2/28/2022
02/27/2022
2/27/2022 12:00:00 AM
3/16/2022
03/13/2022
3/13/2022 12:00:00 AM
4/1/2022
03/27/2022
3/27/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/16/2022
05/15/2022
5/15/2022 12:00:00 AM
6/15/2022
06/12/2022
6/12/2022 12:00:00 AM
6/26/2022
06/26/2022
6/26/2022 12:00:00 AM
7/9/2022
07/03/2022
7/3/2022 12:00:00 AM
7/22/2022
07/17/2022
7/17/2022 12:00:00 AM
7/23/2022
07/17/2022
7/17/2022 12:00:00 AM
7/27/2022
07/24/2022
7/24/2022 12:00:00 AM
8/2/2022
07/31/2022
7/31/2022 12:00:00 AM
8/8/2022
08/07/2022
8/7/2022 12:00:00 AM
8/19/2022
08/14/2022
8/14/2022 12:00:00 AM
9/26/2022
09/25/2022
9/25/2022 12:00:00 AM
10/14/2022
10/09/2022
10/9/2022 12:00:00 AM
10/29/2022
10/23/2022
10/23/2022 12:00:00 AM
El campo start_of_week se crea en la instrucción load anterior utilizando la función weekstart() e introduciendo el campo de fecha como argumento de la función.
La función weekstart() identifica inicialmente en qué semana cae el valor de la fecha y devuelve una marca de tiempo del primer milisegundo de esa semana.
La transacción 8191 tuvo lugar el 5 de febrero. La variable del sistema FirstWeekDay establece el primer día de la semana en domingo. La función weekstart() identifica que el primer domingo antes del 5 de febrero, y por lo tanto el inicio de la semana, fue el 30 de enero. Por lo tanto, el valor de start_of_week de esa transacción devuelve el primer milisegundo de ese día, que es el 30 de enero a las 12:00:00 a. m.
Ejemplo 2: period_no
Vista general
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
Se utilizan el mismo conjunto de datos y escenario que en el primer ejemplo.
La creación de un campo, previous_week_start, que devuelve la marca de tiempo de inicio del trimestre anterior a la transacción.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
previous_week_start
previous_week_start_timestamp
Tabla de resultados
date
previous_week_start
previous_week_start_timestamp
1/7/2022
12/26/2021
12/26/2021 12:00:00 AM
1/19/2022
01/09/2022
1/9/2022 12:00:00 AM
2/5/2022
01/23/2022
1/23/2022 12:00:00 AM
2/28/2022
02/20/2022
2/20/2022 12:00:00 AM
3/16/2022
03/06/2022
3/6/2022 12:00:00 AM
4/1/2022
03/20/2022
3/20/2022 12:00:00 AM
5/7/2022
04/24/2022
4/24/2022 12:00:00 AM
5/16/2022
05/08/2022
5/8/2022 12:00:00 AM
6/15/2022
06/05/2022
6/5/2022 12:00:00 AM
6/26/2022
06/19/2022
6/19/2022 12:00:00 AM
7/9/2022
06/26/2022
6/26/2022 12:00:00 AM
7/22/2022
07/10/2022
7/10/2022 12:00:00 AM
7/23/2022
07/10/2022
7/10/2022 12:00:00 AM
7/27/2022
07/17/2022
7/17/2022 12:00:00 AM
8/2/2022
07/24/2022
7/24/2022 12:00:00 AM
8/8/2022
07/31/2022
7/31/2022 12:00:00 AM
8/19/2022
08/07/2022
8/7/2022 12:00:00 AM
9/26/2022
09/18/2022
9/18/2022 12:00:00 AM
10/14/2022
10/02/2022
10/2/2022 12:00:00 AM
10/29/2022
10/16/2022
10/16/2022 12:00:00 AM
En este caso, como se usó un period_no de -1 como argumento de desplazamiento en la función weekstart(), la función primero identifica la semana en la que se realizan las transacciones. Luego busca una semana antes e identifica el primer milisegundo de esa semana.
La transacción 8196 tuvo lugar el 15 de junio. La función weekstart() identifica que la semana comienza el 12 de junio. Por lo tanto, la semana anterior comenzó el 5 de junio a las 12:00:00 a. m.; este es el valor que devuelve para el campo previous_week_start.
Ejemplo 3: first_week_day
Vista general
Abra el editor de carga de datos y agregue el script de carga a continuación en una nueva pestaña.
El script de carga contiene el mismo conjunto de datos y escenario que el primer ejemplo. Sin embargo, en este ejemplo, debemos establecer el martes como el primer día de la semana laboral.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
date
start_of_week
start_of_week_timestamp
Tabla de resultados
date
start_of_week
start_of_week_timestamp
1/7/2022
01/04/2022
1/4/2022 12:00:00 AM
1/19/2022
01/18/2022
1/18/2022 12:00:00 AM
2/5/2022
02/01/2022
2/1/2022 12:00:00 AM
2/28/2022
02/22/2022
2/22/2022 12:00:00 AM
3/16/2022
03/15/2022
3/15/2022 12:00:00 AM
4/1/2022
03/29/2022
3/29/2022 12:00:00 AM
5/7/2022
05/03/2022
5/3/2022 12:00:00 AM
5/16/2022
05/10/2022
5/10/2022 12:00:00 AM
6/15/2022
06/14/2022
6/14/2022 12:00:00 AM
6/26/2022
06/21/2022
6/21/2022 12:00:00 AM
7/9/2022
07/05/2022
7/5/2022 12:00:00 AM
7/22/2022
07/19/2022
7/19/2022 12:00:00 AM
7/23/2022
07/19/2022
7/19/2022 12:00:00 AM
7/27/2022
07/26/2022
7/26/2022 12:00:00 AM
8/2/2022
08/02/2022
8/2/2022 12:00:00 AM
8/8/2022
08/02/2022
8/2/2022 12:00:00 AM
8/19/2022
08/16/2022
8/16/2022 12:00:00 AM
9/26/2022
09/20/2022
9/20/2022 12:00:00 AM
10/14/2022
10/11/2022
10/11/2022 12:00:00 AM
10/29/2022
10/25/2022
10/25/2022 12:00:00 AM
En este caso, como el argumento de first_week_date se utiliza en la función weekstart(), establece el primer día de la semana en martes.
La transacción 8191 tuvo lugar el 5 de febrero. La función weekstart() identifica que el primer martes anterior a esta fecha y, por lo tanto, el inicio de la semana y el valor devuelto, fue el 1 de febrero a las 12:00:00 a. m.
Ejemplo 4: ejemplo de objeto gráfico
Vista general
Abra el editor de carga de datos y agregue el script de carga a continuación en una nueva pestaña.
El script de carga contiene el mismo conjunto de datos y escenario que el primer ejemplo.
Sin embargo, en este ejemplo, el conjunto de datos sin modificar se carga en la aplicación. El cálculo que devuelve una marca de tiempo del inicio de la semana en que se realizaron las transacciones se crea como una medida en un objeto gráfico de la aplicación.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión: date.
Para calcular el inicio de la semana en que se realiza una transacción, agregue las siguientes medidas:
=weekstart(date)
=timestamp(weekstart(date))
Tabla de resultados
date
start_of_week
start_of_week_timestamp
1/7/2022
01/02/2022
1/2/2022 12:00:00 AM
1/19/2022
01/16/2022
1/16/2022 12:00:00 AM
2/5/2022
01/30/2022
1/30/2022 12:00:00 AM
2/28/2022
02/27/2022
2/27/2022 12:00:00 AM
3/16/2022
03/13/2022
3/13/2022 12:00:00 AM
4/1/2022
03/27/2022
3/27/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/16/2022
05/15/2022
5/15/2022 12:00:00 AM
6/15/2022
06/12/2022
6/12/2022 12:00:00 AM
6/26/2022
06/26/2022
6/26/2022 12:00:00 AM
7/9/2022
07/03/2022
7/3/2022 12:00:00 AM
7/22/2022
07/17/2022
7/17/2022 12:00:00 AM
7/23/2022
07/17/2022
7/17/2022 12:00:00 AM
7/27/2022
07/24/2022
7/24/2022 12:00:00 AM
8/2/2022
07/31/2022
7/31/2022 12:00:00 AM
8/8/2022
08/07/2022
8/7/2022 12:00:00 AM
8/19/2022
08/14/2022
8/14/2022 12:00:00 AM
9/26/2022
09/25/2022
9/25/2022 12:00:00 AM
10/14/2022
10/09/2022
10/9/2022 12:00:00 AM
10/29/2022
10/23/2022
10/23/2022 12:00:00 AM
La medida start_of_week se crea en el objeto gráfico utilizando la función weekstart() e introduciendo el campo date como argumento de la función.
La función weekstart() identifica inicialmente en qué semana cae el valor de la fecha y devuelve una marca de tiempo del primer milisegundo de esa semana.
La transacción 8191 tuvo lugar el 5 de febrero. La variable del sistema FirstWeekDay establece el primer día de la semana en domingo. La función weekstart() identifica que el primer domingo anterior al 5 de febrero – y por lo tanto el inicio de la semana– fue el 30 de enero. Por lo tanto, el valor start_of_week de esa transacción devuelve el primer milisegundo de ese día, que es el 30 de enero a las 12:00:00 a. m.
Ejemplo 5: Escenario
Vista general
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
Un conjunto de datos que se carga en una tabla denominada Payroll.
Datos que consisten en identificaciones de empleados, nombres de empleados y el salario diario que gana cada empleado.
Los empleados comienzan a trabajar el lunes y trabajan seis días a la semana. La variable del sistema FirstWeekDay no debe modificarse.
Al usuario final le gustaría tener un objeto gráfico que muestre, por ID de empleado y nombre de empleado, los salarios obtenidos en la semana hasta la fecha.
La función weekstart(), al utilizar la fecha de hoy como primer argumento y 0 como tercer argumento, establece el lunes como el primer día de la semana y devuelve la fecha de inicio de la semana actual. Al restar ese resultado de la fecha actual, la expresión devuelve a continuación el número de días que han transcurrido en lo que va de semana.
La condición luego evalúa si ha habido más de seis días esta semana. Si es así, la cifra day_rate del empleado se multiplica por 6 días. Sino es así, la cifra day_rate se multiplica por el número de días que han transcurrido en lo que va de semana.
¿Esta página le ha sido útil?
No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.