Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何将字符串格式yyyy-mm-dd转换为dd/mm/yyyy_Sql Server_Tsql_Date - Fatal编程技术网

Sql server 如何将字符串格式yyyy-mm-dd转换为dd/mm/yyyy

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从导

我目前在将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从导入中收到的。我需要将这些转换为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)