将日期时间插入SQLite数据库Xamarin.Forms

时间:2018-11-04 15:25:17

标签: xamarin xamarin.forms

我想更新一列的日期时间,但这就是要插入数据的时间。 01/01/0001 00:00:00 。我可以获取当前日期时间,但是在将其插入到我的sqlite数据库中时,结果为 01/01/0001 00:00:00 。我该如何解决?

var current_datetime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:00");
var current = Convert.ToDateTime(current_datetime);

string retailer_group_sql = "UPDATE tblRetailerGroup SET "'LastSync = '" + current + "', MobileUpdate = '" + current + "' WHERE RetailerCode = '" + retailerCode + "'";
await conn.ExecuteAsync(retailer_group_sql);

1 个答案:

答案 0 :(得分:3)

请避免使用Convert.ToDateTime,因为这很慢并且会导致问题。主要是,它不会引发异常,也不会告诉您输入字符串是否有效并且可以成功转换(因此,为什么您看到那个奇怪的日期)。最好的选择是使用DateTime.TryParseDateTime.ParseExact。请参阅Microsoft文档中的Converting Strings to DateTime Objects

回到当前的问题,您可能会受益于将DateTime对象作为Int32对象存储在SQLite数据库中。您可以convert your DateTime to a Unix timestamp并存储该值,而不是字符串。这应该在内存上更容易一些,并且您将没有麻烦将DateTime转换为String并返回。另外,它是与文化无关的。