Excelite 일련 번호를 날짜로 변환하는 SQLite를 어떻게 얻을 수 있습니까? 나는 어떻게 든 정수 2009 년 9 월 18 일을 얻는 테이블에 정수 40074를 원하니?엑셀/SQLite 날짜 일련 번호
날짜가 이미 SQLite에 있습니다.
Excelite 일련 번호를 날짜로 변환하는 SQLite를 어떻게 얻을 수 있습니까? 나는 어떻게 든 정수 2009 년 9 월 18 일을 얻는 테이블에 정수 40074를 원하니?엑셀/SQLite 날짜 일련 번호
날짜가 이미 SQLite에 있습니다.
sqlite> SELECT DATE('1899-12-30', '+40074 days');
2009-09-18
Excel에서 날짜를 1899 년 12 월 30 일 이후의 일 수로 저장하므로 숫자를 /로 변환하려면 1899 년 12 월 30 일에서 현재 날짜까지의 일 수를 계산하면됩니다. 후. 즉 당신이 작동하지만, 예를 들어 C#을 위해 정확히 어떤 언어에 따라 달라집니다 당신이 다음 작동 것 :
var epoch = new DateTime(1899, 12, 30);
int number = 40074;
var date = epoch.AddDays(number);
Console.WriteLine(date);
var date = new DateTime(1987, 5, 3);
int number = (int) date.Subtract(epoch).TotalDays;
Console.WriteLine(number);
을 (기준시가 30/12/1899을 왜 당신이 궁금해하는 경우입니다 실제 시대는 1900 있어야하지만, 엑셀 잘못 1900 윤년)
이것은 작동하는 것 같다 것을 가정하기 때문에 : 난 그냥 추측,
sqlite> SELECT DATETIME((49400 * 3600 * 24) - 3014928000, 'unixepoch');
2009-09-18 00:00:00
을 솔직히이과에 확인 거기에 상수가 있지만, 간단한 수학이 있다고 확신합니다. 그것을 백업해라.
신기원보다 일찍 일어나는 것처럼 보이지만 철저히 테스트하지는 않았습니다.
죄송합니다. 저는 SQLite에서 작업하는 것에 대해 구체적으로 질문했습니다. 나는 시스템을 이해하거나 다른 언어로 작업하는 데 아무런 문제가 없다. (파이썬은 내가 좋아하는 것이다.) –
동일한 원칙이 적용됩니다. 그것은 단지 다른 문법입니다. – dan04
사실 1900 년을 윤년으로 가정하면서 1900 년 1 월 1 일을 신기원으로 사용한 것은 Lotus 123이었습니다. Excel (VBScript)의 경우이 기능을 사용하여 시대를 되돌려 놓았습니다. 1919 년 2 월 29 일 이후의 모든 날짜에 대해 엑셀과 로터스 123은 서로 다른 날짜 이전에 동의합니다 (그러나 엑셀이 실제로 존재합니다). –