我试图将特定格式插入到MS Access数据库中,以查看数据库中“时间”的行为,但是当我尝试显示日期时,我也想插入时间。
我试图将datetime
变量转换为特定格式并插入该变量
DateTime starttime = Convert.ToDateTime(DateTime.Now.ToShortTimeString());
DateTime nstarttime = Convert.ToDateTime(starttime.ToString("HH:mm"));
06/04/2019 22:55:00
那是我想要的,只是时间
没有日期
答案 0 :(得分:1)
您的主要问题是,在 .Net 中,日期时间的时间部分不是 DateTime ,而是 TimeSpan :
DateTime dateTime = new DateTime(2019, 6, 4, 22, 55, 0);
TimeSpan timePart = dateTime.TimeOfDay;
在Access(VBA)中,“仅时间”值是VBA日期时间的日期时间1899-12-30。根据在Access表中插入时间的方式,您可能必须将时间部分应用于纪元以获取类似于Access使用的值:
DateTime dateTime = new DateTime(2019, 6, 4, 22, 55, 0);
TimeSpan timePart = dateTime.TimeOfDay;
DateTime vbaEpoch = new DateTime(1899, 12, 30);
DateTime vbaTime = vbaEpoch.AddTicks(timePart.Ticks);
当然,回读值时,请忽略日期部分:
TimeSpan timeOfDay = vbaTime.TimeOfDay;
答案 1 :(得分:0)