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

本文涉及的产品
云数据库 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日期数据,以下实例包含各种日期格式的转换。
1140 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.
682 0
|
SQL
SQL Server datetime数据类型设计与优化误区
http://www.searchdatabase.com.cn/showcontent_43301.htm
494 0
|
SQL
sql server使用convert来取得datetime日期数据
sql server使用convert来取得datetime日期数据,以下实例包含各种日期格式的转换 语句及查询结果: Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar...
943 0
|
1月前
|
SQL 安全 算法
【SQL server】玩转SQL server数据库:第四章 数据库安全性
【SQL server】玩转SQL server数据库:第四章 数据库安全性
69 12
|
1月前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
67 10
|
1月前
|
SQL 存储 算法
【SQL server】玩转SQL server数据库:第一章 绪论
【SQL server】玩转SQL server数据库:第一章 绪论
43 5
|
2月前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
2月前
|
SQL 数据库
sql server中创建数据库和表的语法
sql server中创建数据库和表的语法
19 1
|
1月前
|
SQL 数据库 数据库管理
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
66 11

相关实验场景

更多