首页 新闻 会员 周边

.net 要在获取到的年月日上一天怎写?

0
[已解决问题] 解决于 2017-03-22 11:26

如图,数据库中是年月日加时分秒的,然后我从用户那里获取到的是string EndTime="2017-1-25";

所以查询字段2017-1-25=<Time这样写在数据库是查不到2017-1-25那一条数据的,然后我应该怎么写?

你猜丶的主页 你猜丶 | 初学一级 | 园豆:183
提问于:2017-03-16 11:11
< >
分享
最佳答案
0

你可不要骗我。是 2017-1-25=>Time 这样子吧
你在 EndTime 后面加上" 23:59:59.999"
‘2017-1-25 23:59:59.999’=>Time 这样就能出来了吧。

奖励园豆:5
长蘑菇星人 | 小虾三级 |园豆:1832 | 2017-03-16 11:20

我是直接从用户那个获取数据,用的是时间控件,获取到的是没有时间分秒的,然后数据库是有时分秒的,我想怎么处理从用户那里得到的string EndTime="2017-1-25";加上1天时间,这样我就可以在数据查出2017-01-25 10:46:04.080,不然2017-1-25是小于这个时间的,查不出

你猜丶 | 园豆:183 (初学一级) | 2017-03-16 11:23

Time是数据库那个时间的字段

你猜丶 | 园豆:183 (初学一级) | 2017-03-16 11:24

不好意思,是我没理解你的意思吧,你是说EndTime=“‘2017-1-25”+“23:59:59.999”;?

你猜丶 | 园豆:183 (初学一级) | 2017-03-22 08:49
其他回答(2)
0

建议使用

Time < '2017-1-26'

或者使用(性能上有影响)

WHERE CAST(Time AS DATE) <= '2017-1-25'
dudu | 园豆:30994 (高人七级) | 2017-03-16 11:23

我是直接从用户那里获取查询值,不是自己给的,从用户那里获取到的就是string EndTime="2017-1-25";,所以我也是想把EndTime+1,可是我不知道怎么处理让25变成26,最终得到string EndTime="2017-1-26";

支持(0) 反对(0) 你猜丶 | 园豆:183 (初学一级) | 2017-03-16 11:31

@你猜丶: 是在C#代码中加1还是在SQL语句中加1?

支持(0) 反对(0) dudu | 园豆:30994 (高人七级) | 2017-03-16 11:33

@dudu: C#中或者SQL都可以,不过我SQL语句是这样的:Select * From DataExchangeInfo where Time=EndTime

支持(0) 反对(0) 你猜丶 | 园豆:183 (初学一级) | 2017-03-16 11:35

@你猜丶:
可以这样,但Time的索引会用不上

Select * From DataExchangeInfo where CAST(Time AS DATE)=EndTime

如果要使用Time的索引,可以这样

SELECT *
FROM DataExchangeInfo 
WHERE @Time >= CAST(@EndTime AS DATE) AND @Time < CAST(DATEADD(DAY, 1, @EndTime) AS DATE)
支持(0) 反对(0) dudu | 园豆:30994 (高人七级) | 2017-03-16 11:48

@dudu: 不行额,在C#中怎么写呢?

支持(0) 反对(0) 你猜丶 | 园豆:183 (初学一级) | 2017-03-16 13:34
0

var nextDate=DateTime.Parse(EndTime).AddDays(1);

sql  : Select * From DataExchangeInfo where Time<nextDate

Ace001 | 园豆:216 (菜鸟二级) | 2017-03-22 10:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册