首页 新闻 会员 周边

.NET中数据库0001/1/1 0:00:00转化普通时间

0
悬赏园豆:50 [已解决问题] 解决于 2018-08-09 13:43

sql中datetime时间类型什么转化成C#中的普通时间

小韦?的主页 小韦? | 初学一级 | 园豆:62
提问于:2018-08-09 10:01
< >
分享
最佳答案
0

看不懂你要问什么,随便一猜。

var str="0001/1/1 0:00:00";

var time=Convert.ToDateTime(str);

收获园豆:50
找不到一个满意的昵称 | 菜鸟二级 |园豆:243 | 2018-08-09 10:09

就是SQL数据库里的的一个字段是datetime时间类型,在c#中什么转化成普通时间呢

小韦? | 园豆:62 (初学一级) | 2018-08-09 10:11

@小韦?: 不明白,还是上代码吧

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2018-08-09 10:15

@找不到一个满意的昵称: 

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 + "时间段注册");
}

}

小韦? | 园豆:62 (初学一级) | 2018-08-09 10:30

@找不到一个满意的昵称: 我是想弄一个注册时间段的开关

小韦? | 园豆:62 (初学一级) | 2018-08-09 10:31

@找不到一个满意的昵称: 

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();

小韦? | 园豆:62 (初学一级) | 2018-08-09 10:33

@找不到一个满意的昵称: 其实我是想转成这两句的,但是那个totimestamp方法是别人自己写,找不到方法

小韦? | 园豆:62 (初学一级) | 2018-08-09 10:34

@小韦?: 

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")
找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2018-08-09 10:38

@找不到一个满意的昵称: 这个我也懂就是,你什么判断的现在的时间段就是符合要求的时间段呢

小韦? | 园豆:62 (初学一级) | 2018-08-09 10:41

@小韦?: 你是想对时间进行加减运算吧。

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2018-08-09 10:43

@找不到一个满意的昵称: 我是想要精确到时间点,小时

小韦? | 园豆:62 (初学一级) | 2018-08-09 10:44

@找不到一个满意的昵称: 对

小韦? | 园豆:62 (初学一级) | 2018-08-09 10:44

@小韦?: 

StartTime.AddHours(1);//加一小时

StartTime.AddHours(-2);//减两小时

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2018-08-09 10:46

@找不到一个满意的昵称: 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的方法什么写

小韦? | 园豆:62 (初学一级) | 2018-08-09 10:51

@找不到一个满意的昵称: 因为我在数据库已经设置了固定时间

小韦? | 园豆:62 (初学一级) | 2018-08-09 10:54

@小韦?: 你这个 isopen.Value 和  isopen.Value2是什么类型

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2018-08-09 10:54

@找不到一个满意的昵称: datetime

小韦? | 园豆:62 (初学一级) | 2018-08-09 10:55

@小韦?: 

isopen.Value是datetime

那你这个是什么意思??

DateTime.Now.Date.ToString("yyyy-MM-dd ") + isopen.Value

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2018-08-09 10:58

@找不到一个满意的昵称: 不对,是string值,因为isope是string类型了,但是在数据库里value是datetime类型

小韦? | 园豆:62 (初学一级) | 2018-08-09 11:00

@小韦?: 就算是string也有问题,你整个代码都有问题,你要重新理一下思路再弄,

你既然是想“我是想弄一个注册时间段的开关”,那你直接拿当前时间(DateTime.Now)跟你的StartTime和EndTime比较不就行了吗,写这么多代码看都看不懂。

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2018-08-09 11:05

@找不到一个满意的昵称: 时间可以直接比较?

小韦? | 园豆:62 (初学一级) | 2018-08-09 11:12

@小韦?: 

if (DateTime.Now>StartTime&&DateTime.Now<EndTime)
{
IsTrue = true;
}

你这个代码不就是比较时间吗。

DateTime.Now是datetime类型

StartTime也必须是datetime类型,如果不是,你用Convert.ToDateTime转成时间类型,直接比较就行了

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2018-08-09 11:16

@找不到一个满意的昵称: 


DateTime StartTime = Convert.ToDateTime(IsOpen.Value);
DateTime EndTime = Convert.ToDateTime(IsOpen.Value);

这么做的话他直接抛出异常了

小韦? | 园豆:62 (初学一级) | 2018-08-09 11:21

@找不到一个满意的昵称: 提示:该字符串未被识别为有效的DateTime

小韦? | 园豆:62 (初学一级) | 2018-08-09 11:23

@小韦?: IsOpen.Value的值是什么?如果不是datetime的字符串形式(0001/1/1 0:00:00)当然会报错

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2018-08-09 11:24

@找不到一个满意的昵称: 他是字符串了,

小韦? | 园豆:62 (初学一级) | 2018-08-09 11:25

@找不到一个满意的昵称: 那要什么转

小韦? | 园豆:62 (初学一级) | 2018-08-09 11:27

@小韦?: 值是什么? 字符串是类型

var ss = IsOpen.Value;

ss=什么

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2018-08-09 11:28

@找不到一个满意的昵称: 日期

小韦? | 园豆:62 (初学一级) | 2018-08-09 11:31

@小韦?: 。。。聊不下去了

IsOpen.Value 是"0001/1/1 0:00:00" 还是"1"

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2018-08-09 11:34

@找不到一个满意的昵称: 这给没出现了

小韦? | 园豆:62 (初学一级) | 2018-08-09 11:40

@找不到一个满意的昵称: 因为用

DateTime startTime = (DateTime.Now.Date.ToString("yyyy-MM-dd ") + isopen.Value)ToDateTime();
DateTime endTime = (DateTime.Now.Date.ToString("yyyy-MM-dd ") + isopen.Value2).ToDateTime();

才报的

小韦? | 园豆:62 (初学一级) | 2018-08-09 11:41

@找不到一个满意的昵称: IsOpen.Value 获得的是日期,是我在数据库里设置的

小韦? | 园豆:62 (初学一级) | 2018-08-09 11:42

@找不到一个满意的昵称: 的数据

小韦? | 园豆:62 (初学一级) | 2018-08-09 11:42

@找不到一个满意的昵称: 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

小韦? | 园豆:62 (初学一级) | 2018-08-09 11:47

@找不到一个满意的昵称: 

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"

转不行

小韦? | 园豆:62 (初学一级) | 2018-08-09 12:02

@小韦?: 因为你IsOpen.Value的的值就是“0001/1/1 0:00:00”,转出来当然是0001/1/1 0:00:00

你追溯一下IsOpen.Value的来源,断点看看啊,得出的值到底是什么,问题出在哪,是不是数据库里面就是0001/1/1 0:00:00?还是说从数据库取出来赋值的过程中的问题,你不会调试吗。

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2018-08-09 13:40

@找不到一个满意的昵称: 得了,谢谢,是因为,我的数据库里的本来是英文冒号,弄弄成了中文了

小韦? | 园豆:62 (初学一级) | 2018-08-09 13:43
其他回答(3)
0

0001/1/1 0:00:00 就是 C# 中的普通时间

dudu | 园豆:30994 (高人七级) | 2018-08-09 10:12

我是想转换成普通日期。。。

 

支持(0) 反对(0) 小韦? | 园豆:62 (初学一级) | 2018-08-09 10:18

@小韦?: var time= 字段;

var timeTostring=Convert.ToDateTime(time).ToString("yyyy-MM-dd HH:mm:ss")

支持(0) 反对(0) 灰*兔 | 园豆:212 (菜鸟二级) | 2018-08-09 10:27

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 + "时间段注册");
}

}

支持(0) 反对(0) 小韦? | 园豆:62 (初学一级) | 2018-08-09 10:36
0

var time=DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")

灰*兔 | 园豆:212 (菜鸟二级) | 2018-08-09 10:24
0

建表的时候设置默认值就可以了,小弟弟。

wangjinming | 园豆:571 (小虾三级) | 2018-08-09 10:37

已经有默认值了

支持(0) 反对(0) 小韦? | 园豆:62 (初学一级) | 2018-08-09 10:38

@小韦?: 这个是不默认值,默认值会变成当前的时间。

支持(0) 反对(0) wangjinming | 园豆:571 (小虾三级) | 2018-08-09 10:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册