Forum Discussion
Convertir cadena a fecha
- 4 years ago
Hola, @mcflurry
En Power Query con zona horaria:let Date = Date.FromText(Text.BeforeDelimiter(Text.ReplaceRange([String],8,1,"T"),"T")), Time = Time.FromText(Text.BetweenDelimiters([String], "-", "-")), getTimeZone = Text.AfterDelimiter([String], "T"), getPlusOrMinusZone = Text.Start(getTimeZone, 1), GetHourOfZone = Number.FromText( Text.Middle(getTimeZone,1,2)), GetMinuteOfZone = Number.FromText(Text.End(getTimeZone,2)), DateTime = DateTime.From(Date & Time), DateTimeZone = DateTime.AddZone(DateTime,GetHourOfZone,GetMinuteOfZone), CompleteWithCheck = if getPlusOrMinusZone = "+" then DateTimeZone else DateTime.AddZone(DateTime,-GetHourOfZone,GetMinuteOfZone) in CompleteWithCheckAgregue una nueva columna como esta. "Cadena" es su columna con la fecha proporcionada. Luego, simplemente cambie el tipo de la nueva columna a "fecha" o "fechahora" o "fecha-hora".
Editar:
Mejoré el código para comprobar si es "+" o "-". - 4 years ago
Regional Settings ya está en un país europeo.
¿Podría ayudarme a solucionarlo con su código?
Supongo que es esta línea, pero no tengo el conocimiento para lograrlo ...
Date = Date.FromText(Text.BeforeDelimiter(Text.ReplaceRange([String],8,1,"T"),"T")),
Estoy transformando la columna original con formato unicode... y tal vez funcione.
Sí, arreglado de esa manera, gracias.
Hola, @mcflurry
En Power Query con zona horaria:
let
Date = Date.FromText(Text.BeforeDelimiter(Text.ReplaceRange([String],8,1,"T"),"T")),
Time = Time.FromText(Text.BetweenDelimiters([String], "-", "-")),
getTimeZone = Text.AfterDelimiter([String], "T"),
getPlusOrMinusZone = Text.Start(getTimeZone, 1),
GetHourOfZone = Number.FromText( Text.Middle(getTimeZone,1,2)),
GetMinuteOfZone = Number.FromText(Text.End(getTimeZone,2)),
DateTime = DateTime.From(Date & Time),
DateTimeZone = DateTime.AddZone(DateTime,GetHourOfZone,GetMinuteOfZone),
CompleteWithCheck = if getPlusOrMinusZone = "+" then DateTimeZone else DateTime.AddZone(DateTime,-GetHourOfZone,GetMinuteOfZone)
in CompleteWithCheck
Agregue una nueva columna como esta. "Cadena" es su columna con la fecha proporcionada. Luego, simplemente cambie el tipo de la nueva columna a "fecha" o "fechahora" o "fecha-hora".
Editar:
Mejoré el código para comprobar si es "+" o "-".
- Syndicate_Admin4 years ago
Administrator
Hola @vojtechsima
Tengo un problema con su código.
Parece que está tomando el día como mes y el mes como día, y los datos importados de ayer fallan, lo he intentado con 02/28 como ejemplo:
- Syndicate_Admin4 years ago
Administrator
Hola, @mcflurry
Vaya a Configuración - Configuración regional (archivo actual) y cámbielo a algún país europeo, en mi caso República Checa, o vuelva a escribir el script que primero escribe mes y luego día.- Syndicate_Admin4 years ago
Administrator
Regional Settings ya está en un país europeo.
¿Podría ayudarme a solucionarlo con su código?
Supongo que es esta línea, pero no tengo el conocimiento para lograrlo ...
Date = Date.FromText(Text.BeforeDelimiter(Text.ReplaceRange([String],8,1,"T"),"T")),
Estoy transformando la columna original con formato unicode... y tal vez funcione.
Sí, arreglado de esa manera, gracias.