How to convert a datenum to a datetime?
조회 수: 625 (최근 30일)
이전 댓글 표시
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
채택된 답변
Star Strider
2017년 11월 17일
Use the 'ConvertFrom' option:
t = datetime(X,'ConvertFrom','datenum')
댓글 수: 6
추가 답변 (1개)
Peter Perkins
2017년 11월 20일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Dates and Time에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!