Sql server 如何将字符串格式yyyy-mm-dd转换为dd/mm/yyyy
我目前在将ms sql表中的字符串字段转换为我想要的日期格式时遇到了一个问题 以前我一直用Sql server 如何将字符串格式yyyy-mm-dd转换为dd/mm/yyyy,sql-server,tsql,date,Sql Server,Tsql,Date,我目前在将ms sql表中的字符串字段转换为我想要的日期格式时遇到了一个问题 以前我一直用 CONVERT(date,c.INP_DATE ,103) 但这给了我一个错误 [Err] 22007 - [SQL Server]Conversion failed when converting date and/or time from character string. 我拥有的两个示例记录是2013-09-18和2013-09-18 17:17:32.0000000,这是我通过mysql从导
CONVERT(date,c.INP_DATE ,103)
但这给了我一个错误
[Err] 22007 - [SQL Server]Conversion failed when converting date and/or time from character string.
我拥有的两个示例记录是2013-09-18和2013-09-18 17:17:32.0000000,这是我通过mysql从导入中收到的。我需要将这些转换为dd/mm/yyyy,并在适用的情况下随时间一起转换
感谢任何权威人士的帮助:)正确的转换语法是
CONVERT(data_type(length),expression,style)
其中data_type指定目标数据类型(具有可选长度)
应该是这样的:
CONVERT(VARCHAR(10),c.INP_DATE ,103)
CONVERT的正确语法是
CONVERT(data_type(length),expression,style)
其中data_type指定目标数据类型(具有可选长度)
应该是这样的:
CONVERT(VARCHAR(10),c.INP_DATE ,103)
为什么要将日期数据存储为字符串?那太糟糕了!用户输入日期时间。即使是进口,,您仍然可以在导入点转换并存储为datetime。数据基本上来自mysql,并且之前存在日期格式问题,所以我能想到的最简单的方法是以字符串形式存储并转换。无论如何,我现在选择的表将datetime2作为字段类型并保留格式datetime2数据实际上存储在无法读取的二进制格式。您看到的yyyy-mm-dd实际上只是一个查询工具,用于格式化原始数据以供显示。为什么您希望以一种模棱两可且令人困惑的格式(如d/m/y)显示数据?你确定你的所有观众都是英国人/加拿大人吗。?为什么不使用明确的表示格式,如yyyy-mm-dd?为什么要将日期数据存储为字符串?那太糟糕了!用户输入日期时间。即使是进口,,您仍然可以在导入点转换并存储为datetime。数据基本上来自mysql,并且之前存在日期格式问题,所以我能想到的最简单的方法是以字符串形式存储并转换。无论如何,我现在选择的表将datetime2作为字段类型并保留格式datetime2数据实际上存储在无法读取的二进制格式。您看到的yyyy-mm-dd实际上只是一个查询工具,用于格式化原始数据以供显示。为什么您希望以一种模棱两可且令人困惑的格式(如d/m/y)显示数据?你确定你的所有观众都是英国人/加拿大人吗。?为什么不使用明确的表示格式,如yyyy-mm-dd?是的,但这也没有什么区别-格式仍然输出为yyyy-mm-dd,因为您需要先转换为日期。请看:我正在转换日期-请看上面的问题:)是的,但这也没有什么区别-格式仍然输出为yyyy-mm-DD,因为您需要先转换为日期。请看:我正在转换日期-请看上面的问题:)好的进度-这对日期有效,但在第二次转换日期和时间时,它会切断时间,即使我将其更改为varchar(19)-有什么建议吗?试过datetime而不是date和以前的错误OK我想我用过它,103似乎缩短了时间,所以我就这样构建了它,它似乎很好,除非任何人都能将它清理干净一点转换(char(10),CAST('2013-09-18 17:17:32'作为date),103)+''+转换(char(8),CAST('2013-09-18 17:17:32'作为datetime),108)ok progress-这适用于日期,但在日期和时间的第二次转换中,即使我将其更改为varchar(19),它也会切断时间-有什么建议吗?试过datetime而不是date和以前的错误OK我想我用过它,103似乎缩短了时间,所以我就这样构建了它,它似乎很好,除非任何人都能将它清理干净一点转换(char(10),CAST('2013-09-18 17:17:32'作为date),103)+''+转换(char(8),CAST('2013-09-18 17:17:32'作为datetime),108)