我在mysql数据库中使用varchar[1000]
。我想在该列中存储日期时间。然后我需要将其转换为datatime
并将其存储在varchar
中。我们可以转换和存储在varchar
。我们如何隐藏字符串日期时间并将其存储在varchar
对不起,如果有任何错误。任何帮助表示赞赏
我在mysql数据库中使用varchar[1000]
。我想在该列中存储日期时间。然后我需要将其转换为datatime
并将其存储在varchar
中。我们可以转换和存储在varchar
。我们如何隐藏字符串日期时间并将其存储在varchar
对不起,如果有任何错误。任何帮助表示赞赏
正如评论中提到的其他人一样,你真的应该在这里重新考虑你的方法。但是,varchar
需要一个字符串,而不是日期时间,因此只需保存datetime
值的string
表示形式,无需进行任何转换。
做一个varchar(10)也许 ,然后在你的C#代码:
date.ToString("yyyy/MM/dd");
可以格式化你的日期这样的。
像OP这样的声音已经具有字符串表示形式,而不是'DateTime'。 – Sam 2013-04-08 13:18:20
要清楚,你在而不是在varchar
列中存储DateTime
值。您正在存储字符串值。这些字符串值可能包含数字字符或特定的字符序列,人们可能会将其解释为某些特定的(如日期和/或时间),但它们仍然只是字符串。
因此,为了将值转换为字符串,您需要从the .ToString()
method开始。对于基本类型(如整数和日期时间值),这将返回该类型的字符串表示形式。对于复杂类型,它将返回类的名称,因此您需要在该类中重写它。
您可以使用custom string formatting进一步优化日期和时间值的字符串表示形式。
varchar(1000)
是没有意义的。如果您将日期和时间存储为字符串,则不需要超过15-20个字符(可能更少,这取决于日期格式)。
您应该使用CAST
运营商为datetime
值转换为字符串:
CAST(dt AS varchar)
如果你需要生成,从几个领域结合数据输出,您可能需要使用相结合的值的视图你想放在一起,而不是专门在数据表中使用1000个字符的字段。 (提示:使用concat()
函数连接多个字符串。)
为什么要将'datetime'作为'varchar'存储?这就是为什么有'datetime'数据类型。 – Taryn 2013-04-08 13:05:17
让我们清除它,如果你想将它保存在日期时间列中,只需以 的格式发送它,并且如果你想将它保存为一个varchar,它将无关紧要,以任何格式发送它 – 2013-04-08 13:06:48
@bluefeet I将有单列保存整数,字符串和日期时间 – Pa1 2013-04-08 13:07:03