sql - 无法获取今天的记录
问题描述
我想检查今天的日期表中是否已经存在任何记录,并且我sql-server
在美国。
我尝试了下一个查询,但我得到了 0 条记录,尽管今天日期的表中有 23 条记录。
插入代码
public void InsertSmsDetails()
{
DateTime today = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"));
string usecase = "manhole_Chennai";
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("insert into sms (updtd_date,usecase,sms) values ('" + today + "','" + usecase + "','"+TempData["SMSBody"].ToString()+"')", con);
try
{
cmd.ExecuteNonQuery();
}
}
查询获取数据
SELECT *
FROM SMS
where updtd_date > CONVERT(date,GETDATE())
and usecase = 'manhole_Chennai'
请注意,updtd_date
列是类型datetime
样本数据:
2018-03-05 12:35:15.000 manhole_Chennai 11383 Alert : Manhole is filled 6.41666666666667 at time02/05/2018 16:11:09 NULL NULL
2018-03-05 12:34:40.000 manhole_Chennai 11382 Alert : Manhole is filled 6.41666666666667 at time02/05/2018 16:11:09 NULL NULL
2018-03-05 12:34:07.000 manhole_Chennai 11381 Alert : Manhole is filled 6.41666666666667 at time02/05/2018 16:11:09 NULL NULL
2018-03-05 12:33:33.000 manhole_Chennai 11380 Alert : Manhole is filled 6.41666666666667 at time02/05/2018 16:11:09 NULL NULL
2018-03-05 12:32:58.000 manhole_Chennai 11379 Alert : Manhole is filled 6.41666666666667 at time02/05/2018 16:11:09 NULL NULL
2018-03-05 12:32:21.000 manhole_Chennai 11378 Alert : Manhole is filled 6.41666666666667 at time02/05/2018 16:11:09 NULL NULL
解决方案
您的问题是您使用方法将数据插入数据库InsertSmsDetails()
的方式,而不是您查询它的方式。
您的代码可能会生成此 gem:
insert into sms (updtd_date, usecase, sms)
values ('03/05/2018','manhole_Chennai 11383','Alert : Manhole is filled 6.41666666666667 at time02/05/2018 16:11:09');
由于美国语言环境,您的日期'03/05/2018'
被作为字符串插入并被误解为 3 月 5 日。
所以解决这个问题的正确方法是改变你保存数据的方式,以及改变你存储时间戳的方式。有几个选项:
- 以 UTC 存储时间戳
- 使用
datetimeoffset
将包含时区信息的数据类型。
推荐阅读
- optimization - 找到得分最高的非重叠序列的子集
- typescript - 为什么我可以使用临时变量来解决 TypeScript 的对象字面量赋值约束?
- ejb - JCA 远程队列 Wildfly Artemis
- silverstripe - 切换主题后无法访问编辑器
- react-native - React Native:将图像并排对齐在一行上,并具有动态数量的图像
- javascript - 短回调函数语法背后的原理
- javascript - pinterest 可以有多个用户定义的事件吗?
- boost-asio - spawn 和 post 如何与 asio 一起工作?
- firebase - 我想在用户 ID 下发送数据并获取相同的数据
- c++ - 为什么答案是垃圾值?