SqlServer 将纯数字的时间转换为DateTime

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,独享型 2核4GB
简介: SqlServer 将纯数字的时间转换为DateTime由于数据库存的是整个字符串组到一起了,C#代码是这个样子的。复制代码public static string time(DateTime dt) { return dt.

SqlServer 将纯数字的时间转换为DateTime
由于数据库存的是整个字符串组到一起了,C#代码是这个样子的。

复制代码
public static string time(DateTime dt)

    {
        return dt.Year.ToString() + ((Convert.ToInt32(dt.Month) < 10) ? "0" + dt.Month.ToString() : dt.Month.ToString()) + ((Convert.ToInt32(dt.Day) < 10) ? "0" + dt.Day.ToString() : dt.Day.ToString()) + ((Convert.ToInt32(dt.Hour) < 10) ? "0" + dt.Hour.ToString() : dt.Hour.ToString()) + ((Convert.ToInt32(dt.Minute) < 10) ? "0" + dt.Minute.ToString() : dt.Minute.ToString()) + ((Convert.ToInt32(dt.Second) < 10) ? "0" + dt.Second.ToString() : dt.Second.ToString());
    }

复制代码
在sqlserver中存储的实际值是:20190416124941。那么直接转换?

所以在sqlserver中查询的时候我们要进行转化,因为在mssql中进行转换需要是有标准的 例如/ : 等符号。那么我们就进行截取吧。

CONVERT(datetime, left(q.YL01,4)+'-'+SUBSTRING(q.YL01,5,2)+'-'

        +SUBSTRING(q.YL01,7,2))>=DATEADD(MM,-3,getdate()) 

最后就完事了。

复制代码
SELECT distinct TOP 1 z.*,

    MAX(CASE WHEN S.Col_name_en = 'dwtt_crack_act' THEN S.Actual ELSE null END) as [断裂数量实绩值],
MAX(CASE WHEN S.Col_name_en = 'dwtt_dft_act' THEN S.Actual ELSE null END) as [挠度实绩值],q.YL01 FROM

(SELECT Z.Entrustment,z.Test_item_code,Z.sample_no

        FROM HB_M0LMZL Z
        WHERE TEST_ITEM_Code = 'QF' 
        GROUP BY Z.Entrustment,Z.Test_item_code,Z.Sample_no
        HAVING MAX(CASE WHEN z.col_name_en = 'cast_no' THEN z.Actual ELSE null END) = ''

) as Z LEFT JOIN HB_M0LMQ1 Q ON Q.Sample_lot_no = Z.Entrustment AND Q.Test_item_code

= Z.Test_item_code AND Z.Sample_no = Q.Sample_no LEFT JOIN HB_LMM0SJ S ON S.Test_item_code 
    = Z.Test_item_code AND S.Sample_no = Z.Sample_no AND S.Entrustment = Z.Entrustment
     WHERE CONVERT(datetime, left(q.YL01,4)+'-'+SUBSTRING(q.YL01,5,2)+'-'
        +SUBSTRING(q.YL01,7,2))>=DATEADD(MM,-3,getdate()) 
        GROUP BY Z.Entrustment,Z.Test_item_code,Z.Sample_no,q.YL01
        ORDER BY Q.YL01

复制代码
原文地址https://www.cnblogs.com/ZaraNet/p/10756048.html

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
SQL
SQL Server使用convert对datetime日期数据进行获取
来源:http://database.51cto.com/art/201007/211883.htm 备注:本文的语法讲解确实是比较乱,似乎格式不太严谨。参考时还是以实例验证为准比较好   以下的文章主要描述的是SQL Server使用convert取得datetime日期数据的实际操作流程,在实际操作中用SQL Server数据库中用convert来获取datetime日期数据,以下实例包含各种日期格式的转换。
1148 0
|
SQL
SQL Server 2008 各种DateTime的取值范围
SQL Server 2008除了DateTime和SmallDateTime之外,又新增了四种时间类型,分别为:date,time,datetime2和datetimeoffset。 各时间类型范围、精度一览表: 数据类型 时间范围 精度 datetime 1753-01-01到9999-12-31 00:00:00 到 23:59:59.
689 0
|
SQL
SQL Server datetime数据类型设计与优化误区
http://www.searchdatabase.com.cn/showcontent_43301.htm
499 0
|
SQL
sql server使用convert来取得datetime日期数据
sql server使用convert来取得datetime日期数据,以下实例包含各种日期格式的转换 语句及查询结果: Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar...
954 0
|
1月前
|
SQL IDE Java
Java连接SQL Server数据库的详细操作流程
Java连接SQL Server数据库的详细操作流程
|
1月前
|
SQL 存储 安全
sql server 数据库实例
SQL Server 数据库实例是指在 SQL Server 中创建的一个独立的数据库环境。每个数据库实例都拥有自己的一套完整的数据库文件、配置设置、用户和权限等,可以独立地进行管理和操作。以下是关于
|
1月前
|
SQL 监控 安全
sql server数据库监控
SQL Server数据库监控是收集、聚合和监控SQL服务器的各种指标的过程,旨在维护SQL数据库的运行状况和可用性,优化性能,并预防或快速响应错误。以下是一些关于SQL Server数据库监控的核心
|
1天前
|
SQL 小程序 数据库
数据库数据恢复—SqlServer数据库无法被读取的数据恢复案例
SQL Server数据库的数据无法被读取。 经过数据库数据恢复工程师的初步检测,发现SQL Server数据库文件无法被读取的原因是底层File Record被截断为0,无法找到文件开头,而且数据表结构也已经损坏。镜像文件的前几十M和中间一部分空间被覆盖,系统表损坏,所以无法读取。
数据库数据恢复—SqlServer数据库无法被读取的数据恢复案例
|
11天前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
45 3
|
17天前
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。