Mỗi ngôn ngữ và mỗi nền tảng có cách nhìn về ngày khác nhau.Trong excel quy đổi 44365 thành ngày 18/06/2021 tức ngày 0 là 00/01/1900 vậy trong ngôn ngữ lập trình khác như C# thì có các nào quy đổi như trên không ạ?
Dạ cảm ơn bác nhiều ạ!Mỗi ngôn ngữ và mỗi nền tảng có cách nhìn về ngày khác nhau.
C# thuộc về nền tảng (platform) .NET, nền tảng này nhìn ngày tháng bằng ticks.
Excel dùng loại ngày mà Microsoft dùng OLE Automation để liên hệ với các phần mềm khác. (OLE = Object Linking and Embedding)
Trong .NET có đối tượng DateTime. Đối tượng này có hàm FromOADate để chuyển đổi con số serial date của Excel thành ngày theo .NET
VBA Excel là đặc sản của Microsoft. Mắc mớ gì Microsoft phải hổ trợ Unix cho tận gốc. Những cái chuyển đổi kiểu này ai cần thì tự lo lấy.Tôi không thấy ai dùng đơn vị Unix Time trong VBA Excel nhỉ? Dùng Unix ưu điểm ở chỗ cộng trừ thoải mái, không phải lo rào # # trong câu lệnh SQL. Chỉ hơi tốn thêm vài câu lệnh chuyển đổi đầu và cuối code thôi.
Chính là cái .Value2 đó anh ơi.không thấy ai dùng đơn vị Unix Time trong VBA Excel
Không phải chuyển đổi gì cả. Cứ đọc và ghi bình thường.tốn thêm vài câu lệnh chuyển đổi đầu và cuối code thôi.
Value2 là số ngày tính từ ngày 1-1-1900, còn unix là số giây tính từ 0h ngày 1-1-1970 mà bạn!Chính là cái .Value2 đó anh ơi.
Anh để ý sẽ thấy dùng rất rất nhiều rồi.
Không phải chuyển đổi gì cả. Cứ đọc và ghi bình thường.
1/ Ý tôi muốn nói là dùng nó trong VBA để tính toán, so sánh, truy vấn cho tiện và tất nhiên việc chuyển đổi là do người viết code làm.VBA Excel là đặc sản của Microsoft. Mắc mớ gì Microsoft phải hổ trợ Unix cho tận gốc. Những cái chuyển đổi kiểu này ai cần thì tự lo lấy.
Chú: câu lệnh SQL mà bạn nói trên là bạn muốn nói tiêu chuẩn ANSI SQL, hay là Access?
Không phải là số ngày đâu anh. Nó tính tới millisecond.Value2 là số ngày tính từ ngày 1-1-1900
Chỉ khác nhau gốc tham chiếu thôi anh.unix là số giây tính từ 0h ngày 1-1-1970 mà bạn!