将没有日期的时间插入我的数据库

时间:2019-04-06 19:53:57

标签: c# ms-access

我试图将特定格式插入到MS Access数据库中,以查看数据库中“时间”的行为,但是当我尝试显示日期时,我也想插入时间。

我试图将datetime变量转换为特定格式并插入该变量

DateTime starttime = Convert.ToDateTime(DateTime.Now.ToShortTimeString());
DateTime nstarttime = Convert.ToDateTime(starttime.ToString("HH:mm"));

06/04/2019 22:55:00那是我想要的,只是时间 没有日期

2 个答案:

答案 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)

这个问题已经被回答了很多次,但是这里仍然是讨论Link 1:

的链接。

也请检查此Link 2的可能有用的模式

此细节是链接1上提供的实际示例之一。

tutgroupnum.stream().distinct().forEach(x->System.out.println(x));

希望这会有所帮助! 欢呼和快乐的编码!