【问题标题】:Parse to "American format" on my DateTime to work with a stored procedures in SQL?在我的 DateTime 上解析为“美国格式”以使用 SQL 中的存储过程?
【发布时间】:2015-07-08 10:13:50
【问题描述】:

我有一个带有两个参数的存储过程。

一个是int,另一个是DateTime,必须像这样格式化:YYYY-MM-dd HH:MM:SS,但是C#中的解析给了我这个格式:dd-MM-YYYY HH:MM:SS。这是欧洲格式。

如何将其解析为以年份开头,如上所示。

我需要它是一个 DateTime 而不是一个字符串,存储过程不会只允许字符串。

【问题讨论】:

  • A DateTime 没有 any 格式。您将其视为它的 文本 表示形式。 that 值在您的过程中准确使用,而不是字符串表示或其他内容。你也可以更好地看到你的代码和存储过程定义..
  • 您在问题的标题中提到了“SQL 存储过程”。您的问题中再也没有提到这一点。您还标记了这个问题 C#。您能否澄清一下您到底想做什么?
  • 我有一个要调用的存储过程。它需要两个参数。一个是 int,另一个是 DateTime。我在这里遇到的问题是,一旦将日期转换为字符串,它就不再是 DateTime,并且存储过程不会接受它作为参数。转换回 DateTime 会再次弄乱格式。
  • @Praise - 由于细节太少,我们无法回答您的问题。但就像提示一样,您似乎必须更改 SP,而不是应用程序。日期时间是日期时间,而不是格式化字符串

标签: c# parsing date datetime stored-procedures


【解决方案1】:

用下面的例子试试

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

【讨论】:

  • 我在这里遇到的问题是,一旦将日期转换为字符串,它就不再是 DateTime 并且存储过程不会接受它作为参数。转换回 DateTime 会再次弄乱格式。
【解决方案2】:

不发送格式化日期,而是将存储过程参数作为 sql datetime 发送,并通过将日期时间的 LHS 和 RHS 部分转换为相同格式,在相同格式的存储过程中进行比较。

参考this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-22
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    相关资源
    最近更新 更多