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

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

DateTime.Now.ToString(yyyy-mm-dd hh:mm:ss.sssssss)

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

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

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

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

注意:

>除非你真的想要当地时间,否则请使用UtcNow而不是Now.对于时间戳,您几乎总是想要UTC.
>我怀疑你想使用当前文化的时间分隔符,因此是CultureInfo.InvariantCulture的规范
>“MM”表示月份,而“mm”表示分钟
>“HH”表示24小时制,而“hh”表示12小时制
>“ff …”用于几分之一秒

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

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

相关文章
相关标签/搜索