将整数转换为日期,例如MM / DD / YYYY,例如从20200926到09/26/2020?

时间:2020-10-27 01:47:24

标签: sql sql-server tsql

我需要将数字转换为从20200926到09/26/2020的日期,其中date_key是表中的日期col。下面的代码不返回2020年9月26日的输出,它以相同格式返回val。

SELECT CONVERT(VARCHAR(10),date_key,101)       
FROM table

3 个答案:

答案 0 :(得分:2)

转换为字符串,然后转换为日期,再转换为正确格式的字符串:

    hideRect();

    hideEll();

    leavePipeB1();

    hideBall();

    leavePipeR1();

答案 1 :(得分:1)

您的数字格式已经是YYYYMMDD格式,因此转换为日期日期类型更加容易。

首先,您将转换为CHAR(8)以获取字符串表示形式,然后转换为DATE值。然后选择显示格式。

More info on CONVERT

SELECT convert(NVARCHAR(10),convert(date,convert(NCHAR(8),tdate)),101)
FROM
(
VALUES (20200926)
) as t(tdate)
+------------+
|  dateval   |
+------------+
| 09/26/2020 |
+------------+

答案 2 :(得分:0)

提出替代解决方案。我猜有些人可读性差,而另一些人可读性强。

julia> img = rand(1:3, 4,4,3)
4×4×3 Array{Int64,3}:
[:, :, 1] =
 1  3  1  3
 3  3  1  2
 3  3  3  3
 2  1  3  1

[:, :, 2] =
 3  1  3  1
 3  3  3  3
 2  1  1  3
 1  2  3  3

[:, :, 3] =
 1  1  2  1
 2  1  3  2
 3  3  1  1
 1  2  1  3

julia> applymask!(img)

julia> img
4×4×3 Array{Int64,3}:
[:, :, 1] =
 1  3  1  3
 3  3  1  2
 3  3  3  3
 2  1  3  1

[:, :, 2] =
 3  0  3  0
 3  3  0  3
 2  1  0  3
 0  0  3  0

[:, :, 3] =
 1  1  2  1
 2  1  3  2
 3  3  1  1
 1  2  1  3