如何将C#中的DateTime.now转换为yyyy-mm-dd hh:mm:ss.sssssss?

Geo*_*ayi 8 c# datetime

我使用存储过程在我的数据库中存储日期时间戳,使用一个被调用的函数sysdatetime(),其类型varchar(max)以这种格式存储在数据库中yyyy-mm-dd hh:mm:ss.sssssss.当我正在创建一个新帖子时它很好,但是当我尝试更新记录时,我必须使用当前的参数将参数发送到存储过程datetime.我试过这个

DateTime.Now.ToString(yyyy-mm-dd hh:mm:ss.sssssss)
Run Code Online (Sandbox Code Playgroud)

但我收到了一个错误.我该怎么办?

Ps:请参阅下面的图片并显示错误消息

在此输入图像描述

Jon*_*eet 22

我怀疑你是否真的需要字符串表示,你真的想要:

string text = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fffffff", 
                                       CultureInfo.InvariantCulture)
Run Code Online (Sandbox Code Playgroud)

注意:

  • 除非你真的想要的本地时间,使用UtcNow的替代Now.对于时间戳,您几乎总是想要UTC.
  • 我怀疑你是否想要使用当前文化的时间分隔符,因此需要使用 CultureInfo.InvariantCulture
  • "MM"表示月份,而"mm"表示分钟
  • "HH"表示24小时制,而"hh"表示12小时制
  • "ff ..."用于几分之一秒

有关自定义日期和时间格式的详细信息,请参阅MSDN.

但是,我强烈建议您尽可能避免字符串转换.为什么您的存储过程不能只使用相关DateTime类型而不是字符串表示?然后您可以将值传递给存储过程作为一个DateTime(通过命令参数),你可以摆脱容易出错的字符串转换的混乱的.


Dim*_*ima 5

使用此代码:

DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fffffff")
Run Code Online (Sandbox Code Playgroud)

请参阅此ref:http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx