sql中datetime时间类型什么转化成C#中的普通时间
看不懂你要问什么,随便一猜。
var str="0001/1/1 0:00:00";
var time=Convert.ToDateTime(str);
就是SQL数据库里的的一个字段是datetime时间类型,在c#中什么转化成普通时间呢
@小韦?: 不明白,还是上代码吧
@找不到一个满意的昵称:
if (IsOpen.Value3=="1")
{
var ss = IsOpen.Value;
var ll = IsOpen.Value2;
var StartTime = Convert.ToDateTime(ss);
var EndTime = Convert.ToDateTime(ll);
if (StartTime<EndTime)
{
if (DateTime.Now>StartTime&&DateTime.Now<EndTime)
{
IsTrue = true;
}
}
else if (StartTime>EndTime)
{
int StartHour =System.Convert.ToInt32(StartTime.Hour);
int StarMin = System.Convert.ToInt32(StartTime.Minute);
int EndHour = System.Convert.ToInt32(EndTime.Hour);
int EndMin = System.Convert.ToInt32(EndTime.Minute);
int NowMin = System.Convert.ToInt32(DateTime.Now.Minute);
int NowHour = System.Convert.ToInt32(DateTime.Now.Hour);
if (((NowHour * 60) + NowMin)>((StartHour*60)+ StarMin))
{
IsTrue = true;
}
if (((NowHour*60)+NowMin)<((EndHour*60)+EndMin))
{
IsTrue = true;
}
}
if (IsTrue)
{
Response.Redirect("/AppCenter/Reg/Index");
//filterContext.Result = new EmptyResult();
}
else
{
throw new Exception("请在" + StartTime + "至" + EndTime + "时间段注册");
}
}
@找不到一个满意的昵称: 我是想弄一个注册时间段的开关
@找不到一个满意的昵称:
DateTime startTime = (DateTime.Now.Date.ToString("yyyy-MM-dd ") + isopen.Value).ToTimestamp().ToDateTime();
DateTime endTime = (DateTime.Now.Date.ToString("yyyy-MM-dd ") + isopen.Value2).ToTimestamp().ToDateTime();
@找不到一个满意的昵称: 其实我是想转成这两句的,但是那个totimestamp方法是别人自己写,找不到方法
@小韦?:
throw new Exception("请在" + StartTime.ToString("yyyy-MM-dd") + "至" + EndTime.ToString("yyyy-MM-dd") + "时间段注册"); //请在2018-08-09至2018-08-18时间段注册 throw new Exception("请在" + StartTime.ToString("yyyy年M月d日") + "至" + EndTime.ToString("yyyy年M月d日") + "时间段注册"); //请在2018年8月9日至2018年8月18日时间段注册 还可以加入时分秒毫秒 ToString("yyyy-MM-dd HH:mm:ss.fff")
@找不到一个满意的昵称: 这个我也懂就是,你什么判断的现在的时间段就是符合要求的时间段呢
@小韦?: 你是想对时间进行加减运算吧。
@找不到一个满意的昵称: 我是想要精确到时间点,小时
@找不到一个满意的昵称: 对
@小韦?:
StartTime.AddHours(1);//加一小时
StartTime.AddHours(-2);//减两小时
@找不到一个满意的昵称: DateTime startTime = (DateTime.Now.Date.ToString("yyyy-MM-dd ") + isopen.Value).ToTimestamp().ToDateTime();
DateTime endTime = (DateTime.Now.Date.ToString("yyyy-MM-dd ") + isopen.Value2).ToTimestamp().ToDateTime();
所以才会有这句,转化成DateTime 进行比较,然后比较分钟,就是不知道ToTimestamp的方法什么写
@找不到一个满意的昵称: 因为我在数据库已经设置了固定时间
@小韦?: 你这个 isopen.Value 和 isopen.Value2是什么类型
@找不到一个满意的昵称: datetime
@小韦?:
isopen.Value是datetime
那你这个是什么意思??
DateTime.Now.Date.ToString("yyyy-MM-dd ") + isopen.Value
@找不到一个满意的昵称: 不对,是string值,因为isope是string类型了,但是在数据库里value是datetime类型
@小韦?: 就算是string也有问题,你整个代码都有问题,你要重新理一下思路再弄,
你既然是想“我是想弄一个注册时间段的开关”,那你直接拿当前时间(DateTime.Now)跟你的StartTime和EndTime比较不就行了吗,写这么多代码看都看不懂。
@找不到一个满意的昵称: 时间可以直接比较?
@小韦?:
if (DateTime.Now>StartTime&&DateTime.Now<EndTime)
{
IsTrue = true;
}
你这个代码不就是比较时间吗。
DateTime.Now是datetime类型
StartTime也必须是datetime类型,如果不是,你用Convert.ToDateTime转成时间类型,直接比较就行了
@找不到一个满意的昵称:
DateTime StartTime = Convert.ToDateTime(IsOpen.Value);
DateTime EndTime = Convert.ToDateTime(IsOpen.Value);
这么做的话他直接抛出异常了
@找不到一个满意的昵称: 提示:该字符串未被识别为有效的DateTime
@小韦?: IsOpen.Value的值是什么?如果不是datetime的字符串形式(0001/1/1 0:00:00)当然会报错
@找不到一个满意的昵称: 他是字符串了,
@找不到一个满意的昵称: 那要什么转
@小韦?: 值是什么? 字符串是类型
var ss = IsOpen.Value;
ss=什么
@找不到一个满意的昵称: 日期
@小韦?: 。。。聊不下去了
IsOpen.Value 是"0001/1/1 0:00:00" 还是"1"
@找不到一个满意的昵称: 这给没出现了
@找不到一个满意的昵称: 因为用
DateTime startTime = (DateTime.Now.Date.ToString("yyyy-MM-dd ") + isopen.Value)ToDateTime();
DateTime endTime = (DateTime.Now.Date.ToString("yyyy-MM-dd ") + isopen.Value2).ToDateTime();
才报的
@找不到一个满意的昵称: IsOpen.Value 获得的是日期,是我在数据库里设置的
@找不到一个满意的昵称: 的数据
@找不到一个满意的昵称: DateTime startTime = (DateTime.Now.Date.ToString("yyyy-MM-dd ") + isopen.Value)ToDateTime();
DateTime endTime = (DateTime.Now.Date.ToString("yyyy-MM-dd ") + isopen.Value2).ToDateTime();
我已经删了,所以没有"0001/1/1 0:00:00"了,获得的是数据库里的日期2018-08-07 17:00
@找不到一个满意的昵称:
var ss = IsOpen.Value;
var ll = IsOpen.Value2;
DateTime StartTime = Convert.ToDateTime(ss);
DateTime EndTime = Convert.ToDateTime(ll);
这么转化的话StartTime 和EndTime 都是"0001/1/1 0:00:00"
转不行
@小韦?: 因为你IsOpen.Value的的值就是“0001/1/1 0:00:00”,转出来当然是0001/1/1 0:00:00
你追溯一下IsOpen.Value的来源,断点看看啊,得出的值到底是什么,问题出在哪,是不是数据库里面就是0001/1/1 0:00:00?还是说从数据库取出来赋值的过程中的问题,你不会调试吗。
@找不到一个满意的昵称: 得了,谢谢,是因为,我的数据库里的本来是英文冒号,弄弄成了中文了
0001/1/1 0:00:00
就是 C# 中的普通时间
我是想转换成普通日期。。。
@小韦?: var time= 字段;
var timeTostring=Convert.ToDateTime(time).ToString("yyyy-MM-dd HH:mm:ss")
if (IsOpen.Value3=="1")
{
var ss = IsOpen.Value;
var ll = IsOpen.Value2;
var StartTime = Convert.ToDateTime(ss);
var EndTime = Convert.ToDateTime(ll);
if (StartTime<EndTime)
{
if (DateTime.Now>StartTime&&DateTime.Now<EndTime)
{
IsTrue = true;
}
}
else if (StartTime>EndTime)
{
int StartHour =System.Convert.ToInt32(StartTime.Hour);
int StarMin = System.Convert.ToInt32(StartTime.Minute);
int EndHour = System.Convert.ToInt32(EndTime.Hour);
int EndMin = System.Convert.ToInt32(EndTime.Minute);
int NowMin = System.Convert.ToInt32(DateTime.Now.Minute);
int NowHour = System.Convert.ToInt32(DateTime.Now.Hour);
if (((NowHour * 60) + NowMin)>((StartHour*60)+ StarMin))
{
IsTrue = true;
}
if (((NowHour*60)+NowMin)<((EndHour*60)+EndMin))
{
IsTrue = true;
}
}
if (IsTrue)
{
Response.Redirect("/AppCenter/Reg/Index");
//filterContext.Result = new EmptyResult();
}
else
{
throw new Exception("请在" + StartTime + "至" + EndTime + "时间段注册");
}
}
var time=DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
建表的时候设置默认值就可以了,小弟弟。
已经有默认值了
@小韦?: 这个是不默认值,默认值会变成当前的时间。