从int获取日期(YYYYMMDD)

Luk*_*uke 1 t-sql database sql-server datetime date

几个月前我犯了一个错误,我遇到了一个情况,我必须找到解决方案来解决以下问题:

我在SQL Server数据库(YYYYMMDD)中以通用格式将日期保存为整数.我想让我的select语句给我一个格式的整数,看起来像一个日期(甚至是真正的日期类型)给用户,所以我可以直接使用收到的数据表作为我的DataGridView的数据源.

  • 我不想使用客户端格式
  • 我们调用表myTable和整数/日期列myIntDate
  • myIntDateNULL
  • 样本myIntDate-value:2016年8月3日20160803

Joh*_*tti 11

Select cast(cast(20160729 as varchar(10)) as date)
Run Code Online (Sandbox Code Playgroud)

返回

2016-07-29
Run Code Online (Sandbox Code Playgroud)

要么

 Select cast(left(20160729,8) as date)
Run Code Online (Sandbox Code Playgroud)

  • 不需要将其转换为`VARCHAR(10)`,`VARCHAR(8)`会这样做 (3认同)