Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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 将Varchar字符串转换为日期_Sql Server - Fatal编程技术网

Sql server 将Varchar字符串转换为日期

Sql server 将Varchar字符串转换为日期,sql-server,Sql Server,我有一个名为DataCollectionWeek的字段,它被上传为Varchar(8),'02/14/2020',我需要运行MAX函数,但我认为这可能是Varchar上的一个问题。我已经尝试过(下面的代码),但是我也得到了下面的错误。有没有办法将字符串varchar值转换或强制转换为日期 将(smalldatetime,datacollectionweek,1)转换为datacollectionweek Msg 295,16级,状态3,第87行 将字符串转换为smalldatetime数据类型时

我有一个名为DataCollectionWeek的字段,它被上传为Varchar(8),'02/14/2020',我需要运行MAX函数,但我认为这可能是Varchar上的一个问题。我已经尝试过(下面的代码),但是我也得到了下面的错误。有没有办法将字符串varchar值转换或强制转换为日期

将(smalldatetime,datacollectionweek,1)转换为datacollectionweek
Msg 295,16级,状态3,第87行
将字符串转换为smalldatetime数据类型时,转换失败。

尝试使用
CONVERT
如下:

SELECT CONVERT(datetime, '02/14/2020', 101) AS yourDate;

我看到了另一个潜在的问题。如果您仅使用8个字符来存储文本日期,那么您将切断信息,因为它们需要10个字符。但是,最好不要将日期存储为文本。

尝试使用
CONVERT
,如下所示:

SELECT CONVERT(datetime, '02/14/2020', 101) AS yourDate;

我看到了另一个潜在的问题。如果您仅使用8个字符来存储文本日期,那么您将切断信息,因为它们需要10个字符。但是,最好不要将日期存储为文本。

目前最大的问题是使用了错误的数据类型。为什么您会自愿将日期存储为varchar?但是,如果您将“02/14/2020”存储为varchar(8)中的“日期”,则会出现更大的问题,因为该数据不适合,长度为10个字符。如果您想要“日期”,为什么要尝试转换为smalldatetime而不是date?到目前为止,最大的问题是使用了错误的数据类型。为什么您会自愿将日期存储为varchar?但是,如果您将“02/14/2020”存储为varchar(8)中的“日期”,您会遇到更大的问题,因为该数据不适合,它有10个字符长。如果您想要一个“日期”,为什么要尝试转换为smalldatetime而不是date?非常感谢您的帮助!我同意,但不知道为什么团队会将日期上传为varchars@Hakka-4如果2012+,我建议您尝试转换()。try_convert()不会抛出错误,如果转换失败,它将返回空值。@Hakka-4供参考-接受解决您问题的答案被认为是一种很好的形式。我该怎么做?“感谢反馈!记录声誉低于15的人的投票,但不要更改公开显示的帖子分数。”非常感谢你,这起作用了!我同意,但不知道为什么团队会将日期上传为varchars@Hakka-4如果2012+,我建议您尝试转换()。try_convert()不会抛出错误,如果转换失败,它将返回空值。@Hakka-4供参考-接受解决您问题的答案被认为是一种很好的形式。我该怎么做?“感谢反馈!记录声誉低于15的人的投票,但不要更改公开显示的帖子分数。”