How to convert a datenum to a datetime?
458 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
JFz
el 17 de Nov. de 2017
Comentada: JFz
el 20 de Nov. de 2017
Hi, I have table with column of datenum. I need to do a join with another table which has also a column of date but in just a plain format such as '11/1/2017'. But I got this error: Left and right key variables 'Date' and 'Date' are not comparable because one is a non-cell. How to resolve this error? Thanks a lot!
0 comentarios
Respuesta aceptada
Star Strider
el 17 de Nov. de 2017
Use the 'ConvertFrom' option:
t = datetime(X,'ConvertFrom','datenum')
6 comentarios
Más respuestas (1)
Peter Perkins
el 20 de Nov. de 2017
Star Strider's answer seems like the long way around. JFz, it always helps to provide a short concrete example so people don't have to guess, but it sounds like you have one table with a datenum variable and another with a datestr variable,
>> t1 = table(floor(now) + [1;2;3],[1;2;3],'VariableNames',{'Date' 'X'})
t1 =
3×2 table
Date X
______ _
737020 1
737021 2
737022 3
>> t2 = table(datestr(floor(now) + [3;2;1]),[33;22;11],'VariableNames',{'Date' 'Y'})
t2 =
3×2 table
Date Y
___________ __
[1x11 char] 33
[1x11 char] 22
[1x11 char] 11
and you want to join the two tables using dates as the key. Convert the dates to datetimes, and you're done:
>> t1.Date = datetime(t1.Date,'ConvertFrom','datenum')
t1 =
3×2 table
Date X
____________________ _
21-Nov-2017 00:00:00 1
22-Nov-2017 00:00:00 2
23-Nov-2017 00:00:00 3
>> t2.Date = datetime(t2.Date)
t2 =
3×2 table
Date Y
___________ __
23-Nov-2017 33
22-Nov-2017 22
21-Nov-2017 11
>> t3 = join(t1,t2)
t3 =
3×3 table
Date X Y
____________________ _ __
21-Nov-2017 00:00:00 1 11
22-Nov-2017 00:00:00 2 22
23-Nov-2017 00:00:00 3 33
Ver también
Categorías
Más información sobre Dates and Time en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!