MSSQL
我需要在我的数据库中插入一个字符串作为日期。我正在尝试这个查询,但它没有按照我的预期插入。
Insert into date_table (CONFIG_DATE)
Values (CONVERT(VARCHAR(11),CONVERT(DATETIME,'18-SEP-13',103),106));
插入为:2013-09-18 ,但预期输出为18-SEP-2013
对此的任何帮助将不胜感激..
MSSQL
我需要在我的数据库中插入一个字符串作为日期。我正在尝试这个查询,但它没有按照我的预期插入。
Insert into date_table (CONFIG_DATE)
Values (CONVERT(VARCHAR(11),CONVERT(DATETIME,'18-SEP-13',103),106));
插入为:2013-09-18 ,但预期输出为18-SEP-2013
对此的任何帮助将不胜感激..
我不确定为什么在插入之前将转换后的日期转换回字符串。Date itself does not have a format
. 格式用于演示目的。
最好的办法是将日期存储为 Date 而不是字符串。106 样式的第一次转换应该没问题。
Insert into date_table (CONFIG_DATE)
Values (CONVERT(DATETIME,'18-SEP-13',106));
将字符串转换为日期类型时,最安全的做法是使用与文化无关的 ISO 格式。例如yyyymmdd
(ISO 格式)和yyyy-mm-ddThh:mi:ss.mmm (no spaces)
(ISO8601)。
通过以这种格式插入日期值,我不知道您期望什么,因为我看不出它有任何优势或可能性。
我认为最好的方法是将值存储在数据库中date
或datatime
在数据库中设置格式,并在您进行选择时应用格式。
你能提供你的表模式吗?
我认为您的列数据类型是 datetime、date 或 datetime2,您不能在datetime、date 或 datetime2列中插入18-SEP-2013 .. 您需要在2013-09-18插入它,但是当您当时选择它时,您可以编写
select CONVERT(varchar(30), CONFIG_DATE, 106)
尝试这个
Insert into date_table (CONFIG_DATE)
Values (replace(CONVERT(VARCHAR(11),CONVERT(DATETIME,'18-SEP-13',103),106),' ','-'))