日期以多种不同的格式发送到SQL,我该如何处理?

时间:2016-11-10 15:43:26

标签: sql sql-server-2008 date formatting

我正忙于编辑我之前创建的Reports的存储过程。 我遇到了一个问题,即发送到存储过程的参数来自多台计算机的各种时髦格式。

我遇到的一些格式是

“2017年1月31日

'2017-31-01'

'01 -01-2017'

'31012017'

'20170131'

我迫切需要一种方法来处理所有这些不同的格式。 '31012017'给了我一个输入错误,所以它甚至不想到达我的转换器,所以我把输入参数设为VARCHAR(15)来接受各种输入。

2 个答案:

答案 0 :(得分:0)

您可以对日期格式进行一些有根据的猜测,但是您可以猜测的数量有限。

规范日期通常与ISO兼容所以yyyy-mm-dd - 我从未见过类似2017-31-01的内容。

问题是当你得到像11-11-2011或更糟糕的事情 - 10/11/12。如果你没有其他信息,就无法弄明白。

答案 1 :(得分:0)

我发现的最佳修复方法如下(适用于几乎所有格式)

https://i.stack.imgur.com/MLARE.png

通过这种方式,它可以选择使用的PC格式,并将标准化格式发送到SQL