我需要在我的MSSQL
数据库中插入一个字符串作为日期。
我正在尝试此查询,但它不是按照我的期望插入。
Insert into date_table (CONFIG_DATE)
Values (CONVERT(VARCHAR(11),CONVERT(DATETIME,'18-SEP-13',103),106));
插入为: 2013-09-18 但预计产量 18-SEP-2013
任何帮助都会受到赞赏..
答案 0 :(得分:0)
我不希望以这种格式插入日期值,因为我看不到任何优势或可能性。
我认为最好的方法是将数据以date
或datatime
格式存储在数据库中,并在执行选择时应用格式。
答案 1 :(得分:0)
我不确定为什么在插入之前将转换后的日期转换回字符串。 Date itself does not have a format
。格式化用于演示目的。
最好的事情是将日期存储为日期而不是字符串。第一次转换应该是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)。
答案 2 :(得分:0)
你能提供你的表架构吗?
我认为您的列数据类型是datetime,date或datetime2,并且您无法在 datetime,date或datetime2 列中插入 18-SEP-2013 ..您需要插入它 2013-09-18 但是当你选择它时,你可以写
select CONVERT(varchar(30), CONFIG_DATE, 106)
答案 3 :(得分:-1)
试试这个
Insert into date_table (CONFIG_DATE)
Values (replace(CONVERT(VARCHAR(11),CONVERT(DATETIME,'18-SEP-13',103),106),' ','-'))