我正在尝试将传入请求的时间戳与数据库存储值进行比较.SQL Server当然会保留一些毫秒的精度,当读入.NET DateTime时,它包括那些毫秒.但是,对系统的传入请求不提供该精度,因此我需要简单地删除毫秒.
我觉得我错过了一些明显的东西,但我还没有找到一种优雅的方法(C#).
我有一个像这样结构的表:
CREATE TABLE [TESTTABLE]
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[DateField] [datetime] NULL,
[StringField] [varchar](50),
[IntField] [int] NULL,
[BitField] [bit] NULL
)
Run Code Online (Sandbox Code Playgroud)
我执行以下代码:
BEGIN
INSERT INTO TESTTABLE (IntField, BitField, StringField, DateField)
VALUES ('1', 1, 'hello', {ts '2009-04-03 15:41:27.378'});
SELECT SCOPE_IDENTITY()
END
Run Code Online (Sandbox Code Playgroud)
然后
select * from testtable with (NOLOCK)
Run Code Online (Sandbox Code Playgroud)
我的结果显示:
2009-04-03 15:41:27.*377*
Run Code Online (Sandbox Code Playgroud)
为DateField列.
任何想法为什么我似乎失去了一毫秒?
我想在db2中查询时间戳数据类型.我在下面写了一下查询
Select * from sample where LASTMODIFIEDDATE = timestamp('2012-04-03 07:59:50')
我没有得到任何上述查询的结果,然后我试过了
Select * from sample where LASTMODIFIEDDATE > timestamp('2012-04-03 07:59:50')
在上面的查询中,我得到的结果与时间戳'2012-04-03 07:59:50'相匹配,以获得更大的时间戳值,例如'2012-04-03 08:59:50'.
如果我得到'>'运算符的结果,为什么我没有得到'='运算符的任何结果?任何原因或我写错了查询?
谢谢 !