C#将DateTime存储到MYSQL的Timestamp列中

4

如何将C# Datetime.Today 转换为 MySQL 中的 Timestamp 格式,例如 2011-10-20 12:00:00?


你是在问如何在C#中实现还是如何在Mysql中实现? - Polity
你考虑过使用参数化查询吗? - Mark Byers
5个回答

11

如果您想以该格式获取日期时间字符串,则可以执行以下操作...

string dt = DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss");

关于DateTime ToString方法的额外格式选项,请参见此处

尽管我了解MySQL会接受格式为yyyy-MM-dd HH:mm:ss的时间戳。 我建议这样做,因为它将确保像05/08/2011这样的日期被正确地解析为正确的月份和日...

string dt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

将格式字符串更正为“MM / dd / yyyy HH:mm:ss”(根据 OP 的问题),您将得到我的+1 :) - Marco
它应该是下午,但存储在MySQL中却是上午。 - user236501

2

试试这个:

DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss");

如果您需要更多/其他时间格式,请查看此链接


1

您可以使用类似以下的代码,并将返回值用作 Sql 的时间戳。

public static string GiveMeTimestamp(DateTime value)
{
 return value.ToString("yyyy/MM/dd HH:mm:ss:ffff");
}

0

这可能会帮助那些有着和我相同思路和方法的人:

在MYSQL Workbench中直接进行测试:

INSERT into tblDemo VALUES (898,CURRENT_TIMESTAMP());

create table tblDemo (ScenarioID INT(10),
          ProcessTime  DATETIME DEFAULT CURRENT_TIMESTAMP() NOT NUll);

现在在您的C#代码中编译字符串,如下所示:

    string query = "INSERT into tblDemo " + 
                    "VALUES (" +  ScenarioID + "," +  " CURRENT_TIMESTAMP())";

请注意上面查询中引号中的CURRENT_TIMESTAMP()

输出结果为: '2021-03-04 17:52:30'


0
使用重载的ToString方法,该方法接受一个字符串参数作为格式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接