有时我们需要查询数据库时间字段返回结果中有时间格式的字符串这个字符串要与某变量进行比较如果相等就进行下一步操作,但返回的时间字符串有时是“yyyy/MM/dd HH: mm:ss”而我们的变量字符串又是“yyyy-MM-dd HH: mm:ss”这样一来就无法比较,有必要进行时间格式的转换来达到目的。
如以下数据格式为时间变量字符串内联代码片。
TimeStr = "2021-12-27 15:03:51";
//转换时间日期格式
string compareStr = Convert.ToDateTime(TimeStr).ToString("yyyy - MM - dd HH: mm:ss");
即使时间字符串是yyyy-MM-dd HH: mm:ss格式也要进行转换一次,这样可以防止多输入了空格
使字符串长度发生变化
数据库查询出来的结果也要进行同样的转换
数据库查询结果在ds中 内联代码片
。
private List<string>GetQueryData(DataSet ds, string ColumnName)
{
List<string> list = new List<string>();
//列Index
int columnInt = 0;
if (ds != null && ds.Tables.Count > 0)
{
//循环查询DateSet表中的行数
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
//查询扣分时间段名所在位置
if (ColumnName == ds.Tables[0].Columns[j].ColumnName.ToString())
{
columnInt = j;
}
}
//添加单元格内容到集合
//转换时间带毫秒
//string timeToStr = Convert.ToDateTime(ds.Tables[0].Rows[i][columnInt]).ToString("yyyy - MM - dd HH: mm:ss.fff");
//转换时间格式不带毫秒
string timeToStr = Convert.ToDateTime(ds.Tables[0].Rows[i][columnInt]).ToString("yyyy - MM - dd HH: mm:ss");
list.Add(timeToStr.ToString());
}
}
else
{
list = null;
}
return list;
}
这样时间格式就一样了,即可进行比较如果相等就进行下一步的操作