c# - 比较sql插入日期和c#日期时间

标签 c# mysql

我正在开发一个交易网站。创建订阅后,修改日期将插入到表中。我想要完成的是唯一地标识该记录。这是我正在尝试的:

DateTime currentTime = DateTime.Now;
Debug.WriteLine("Current Timestamp is: " + currentTime.ToString("yyyy-MM-dd HH:mm:ss:fff"));

sCmd.CommandText = "SELECT distinct userID FROM table WHERE Report_OID = @reportID AND ModifiedDate = @currentTime";
sCmd.Parameters.AddWithValue("@reportID", reportID);
sCmd.Parameters.AddWithValue("@currentTime", currentTime.ToString("yyyy-MM-dd HH:mm:ss:fff"));

Output: 

Current Timestamp is: 2016-06-09 10:19:16:586
Modified Date is: 2016-06-09 10:19:16.553

尝试过这个:

sCmd.CommandText = "SELECT LAST_INSERT_ID();";
IDataReader reader = sCmd.ExecuteReader();
while (reader != null &&  reader.Read())
{
    long lastInsertedID = reader.GetInt64(0);
    Debug.WriteLine("return id is : " + lastInsertedID);
}

Got this error:
'LAST_INSERT_ID' is not a recognized built-in function name.

This error may have happened due to the createSubscription method call to create a subscription in the reporting service webservice which handles the insert in the database. I do not have insert statements in my code. 

这将会失败,因为毫秒不会相同。我想使用毫秒的原因是为了防止两个用户在同一时间插入订阅时出现多个用户 ID。

我想要弄清楚的是比较这两个日期,这样我就可以准确地获取我的交易的用户ID,并且不用担心如果同时插入两个交易则会获取其他人的用户ID。这可能吗?我是否试图以错误的方式解决这个问题?任何帮助将不胜感激。谢谢。

最佳答案

请原谅我的伪代码(我不经常使用 MySQL),但正确的方法是修改插入以返回语句插入的最后一条记录的标识,而不是尝试匹配内容使用时间戳和用户 ID。代码会更简单、更可靠。这是在 MySQL 中使用 LAST_INSERT_ID() 函数(MS SQL 的 SCOPE_IDENTITY() 函数的近似值)完成的。

例如,您的插入(假设表有一个名为“FooID”的缩进列)可能如下所示:

INSERT INTO Foo (Bar) VALUES ('Biz');
SELECT LAST_INSERT_ID();

如果新记录的 FooID 为 148,那么您的语句将插入该记录并返回 148,此时您可以:

SELECT Bar FROM Foo WHERE FooID = 148;

这应该可以完成您想要做的事情。

关于c# - 比较sql插入日期和c#日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37731567/

相关文章:

c# - ApplicationSignInManager 类抛出无效的转换异常

c# - 如何在C#中的多个线程中一次处理信号

mysql - 使用 Hibernate 配置更改 max_allowed_pa​​cket 属性

MySQL Git Bash winpty mysqldump stdout 不是 tty 并且 stdin 不是 tty

php - 我无法更新 mysql(i) 数据库。如何在数据库中设置用户类型?

c# - c#中的Web服务中可以有2个同名的Web方法吗

C# MySql 如果记录存在则更新否则插入?

c# - 我尝试使用 C# txtbox 表单在 mysql 数据库中插入数据,但总是出现错误?

php - 如何在网络应用程序中显示和操作视觉对象?

php - MySQL 增量并避免不正确的引用