UNITY改变数据库导出时间的时间间隔

用C#将数据库中时间列改变分布间隔并导入Unity的UGUI下拉列表

在数据库中是以五秒为间隔写入的,应甲方要求需要对数据库数据进行十分钟一整合,并导出为Excel表格,对时间的选择就不知道怎么写合适
下面,是我按我的笨方法来的。

代码展示

Start_Time.ClearOptions();//清空下拉列表选项
End_Time.ClearOptions();

sql = "SELECT ID,Format$(System_Time, 'yyyy / mm / dd hh:mm:ss') AS S_Time FROM t_First";//数据库查询
DataTable Access_Data = AccessData.getInstance().OperateAccess(sql, "t_First");
//Debug.Log(Access_Data.Rows[0][Access_Data.Columns[1].ColumnName]);

List<DateTime> dateTime = new List<DateTime>();//定义储存时间的列表
List<string> Start_dateTime_Name = new List<string>();//定义起始时间选项列表
List<string> End_dateTime_Name = new List<string>();//定义终止时间选项列表

DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo();//强制界面时间格式
dtFormat.ShortDatePattern = "yyyy/MM/dd hh:mm:ss";//定义时间格式为"yyyy/MM/dd hh:mm:ss"

 for (int i = 0; i < Access_Data.Rows.Count; i++)
 {
	//将数据库中的时间按格式转换为DateTime类型
	dateTime.Add(Convert.ToDateTime(Access_Data.Rows[i][Access_Data.Columns[1].ColumnName].ToString(), dtFormat));
 }

for (int i = 0; i < dateTime.Count-1; )
{
     //计算第一项与后一项的时间间隔,小于10Min则删除后一项,直到第一项与后一项相差大于等于十,并将那一项变为第二项,依次重复
	TimeSpan span = dateTime[i+1].Subtract(dateTime[i]);
    int Min_Diff = span.Minutes + 1;
    //Debug.Log(Min_Diff);
    if (Min_Diff<10)
	{
		dateTime.RemoveAt(i+1);
	}
	else
	{
		i++; 
	}
}

 //加入数据库最后一条时间,以防止数据库最后一项与DateTime列表中最后一项相差小于十,导致的数据缺失
dateTime.Add(Convert.ToDateTime(Access_Data.Rows[Access_Data.Rows.Count-1][Access_Data.Columns[1].ColumnName].ToString(), dtFormat));

for (int i = 0; i < dateTime.Count ; i++)
{
    //将DateTime列表转为字符串列表以方便传入下拉列表中,此处起始和终止时间的字符串列表相同
    Start_dateTime_Name.Add(dateTime[i].ToString());
	End_dateTime_Name.Add(dateTime[i].ToString());
}

	//将起始时间字符串列表中最后一项删除、终止时间字符串列表中第一项删除
	Start_dateTime_Name.RemoveAt(Start_dateTime_Name.Count-1);
	End_dateTime_Name.RemoveAt(0);

	//字符串列表传入下拉列表选项
	Start_Time.AddOptions(Start_dateTime_Name);
	End_Time.AddOptions(End_dateTime_Name);
必要的注释都写上了,就不过多解释了。
果然程序员最讨厌的两件事一个是看别人的代码不写注释,另一个是不想写注释啊!!

实现效果

在这里插入图片描述
这个是数据库中数据

在这里插入图片描述 在这里插入图片描述
这是UNITY下拉列表中的显示

结语

大概功能实现了,但我觉得应该有更好的办法吧,Sql我很基础,大家有更好的方式还望不吝赐教。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辰似五味

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值