SQL获取前一天0:00:00至23:59:59数据

一、前言

因为我公司要做财务结算前一天0:00:00至23:59:59的数据,利用到动态拼接SQL语句

我们需要明白声明DateTime 和 Date 获取的时间格式是不一样的,所以通过此计算有利于得到我们需要的时间段数据

二、测试数据展示(自己看print结果)

DECLARE @startDate DATE;
DECLARE @startDateTime DATETIME;
DECLARE @endDateTime DATETIME ;
SET @startDate=GETDATE();
SELECT @startDateTime=DATEADD(DAY,-1,@startDate);
SET @endDateTime=DATEADD(second,-1,CONVERT(DATETIME,@startDate))

print(@startDateTime)
print(CONVERT(DATETIME,@startDate))
print(@startDate)
print(@endDateTime)

三、动态SQL语句

DECLARE @startDate DATE;
DECLARE @startDateTime DATETIME;
DECLARE @endDateTime DATETIME ;
SET @startDate=GETDATE();
SELECT @startDateTime=DATEADD(DAY,-1,@startDate);
SET @endDateTime=DATEADD(second,-1,CONVERT(DATETIME,@startDate))

declare @sql nvarchar(1000)
set @sql=‘select * from E_OrdersLogistics  where ForecastTime>=‘‘‘+cast(ISNULL(@startDateTime,‘‘) as nvarchar(100))  +‘‘‘ and ForecastTime<‘‘‘+CAST(ISNULL(@endDateTime,‘‘) as nvarchar(100))+‘‘‘‘

print(@sql)

exec(@sql)

如需转载,请注明出处,谢谢大家支持~

时间: 2024-08-03 18:41:35

SQL获取前一天0:00:00至23:59:59数据的相关文章

js获取当前天00:00:00时间戳和23:59:59的时间戳

const start = new Date(new Date().toLocaleDateString()).getTime(); console.log(start); const end = new Date(new Date().toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1; console.log(end); new Date() ; 将时间戳转换成日期格式 getTime();将日期转换成时间戳 //Mon Dec

moment获取天的23时59分59秒可以用moment().endOf(String),以及获取天的0时0分0秒可以用moment().startOf(&#39;day&#39;)

资料来源:https://segmentfault.com/a/1190000010045286 moment获取天的23时59分59秒可以用moment().endOf(String),以及获取天的0时0分0秒可以用moment().startOf('day') 获取今天0时0分0秒 moment().startOf('day') 获取本周第一天(周日)0时0分0秒 moment().startOf('week') 获取本周周一0时0分0秒 moment().startOf('isoWeek'

[SQL Server] 时间处理:获取今天的00:00:00/获取今天的23:59:59

获取今天的00:00:00 SELECT CONVERT(DATETIME,CONVERT(VARCHAR(10),GETDATE(),120)) 获取今天的23:59:59 1.SELECT DATEADD(SS,-1,DATEADD(DD,1,CONVERT(DATETIME,CONVERT(VARCHAR(10),GETDATE(),120)))) 2.SELECT CONVERT(DATETIME,CONVERT(VARCHAR,GETDATE(),112),112)+1-1.0/360

获取当天时间的开始和结束 00:00:00和23:59:59

例如:2014-07-09 00:00:00 select convert(varchar(10),getdate(),23)+' 00:00:00' 例如:2014-07-09 23:59:59 select convert(varchar(10),getdate(),23)+' 23:59:59' 获取当天时间的开始和结束 00:00:00和23:59:59

解决Android 6.0获取wifi Mac地址为02:00:00:00:00:00问题【转】

本文转载自:http://www.jb51.net/article/128398.htm 这篇文章主要介绍了Android 6.0获取wifi Mac地址为02:00:00:00:00:00的解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 前言: 之前项目比较旧,手机版本还比较低,还使用eclipse开发.用到了需要获取手机wifi Mac地址.使用了如下代码: // Android 6.0之前的版本可以用的方法(模拟器可以使用) private String getMacAddrO

SQL Server 取前一天的0点和23点59分59秒

DECLARE @startDate1 DATE;DECLARE @startDate DATETIME;SET @startDate1=GETDATE();SELECT @startDate=DATEADD(DAY,-1,@startDate1); DECLARE @endDate DATETIME ;SET @endDate=DATEADD(second,-1,CONVERT(DATETIME,@startDate1)); SELECT @startDate startDate,@endDa

php获取当天的零点和24点(即当天的00:00:00~23:59:59)

$todayStart= date('Y-m-d 00:00:00', time()); //2016-11-01 00:00:00 $todayEnd= date('Y-m-d 23:59:59', time()); //2016-11-01 23:59:59

MySQL 关于 Value &#39;0000-00-00 00:00:00&#39; can not be represented as java.sql.Timestam

处理Sql查询遇到这样一个问题(数据库是MySQL),有个字段定义类型是datetime,且非空无默认值, 通过PHPMyAdmin界面填充测试数据的时候没有理会这个字段,看到个小警告,插入成功, 但是在取数据的时候出现这样一个错误: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp JAVA连接MySQL数据库,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常,就是所见的:

Mysql-提示java.sql.SQLException: Cannot convert value &#39;0000-00-00 00:00:00&#39; from column 7 to TIMESTAMP.

在Mysql数据库中使用DATETIME类型来存储时间,使用JDBC中读取这个字段的时候,应该使用 ResultSet.getTimestamp(),这样会得到一个java.sql.Timestamp类型的数据.在这里既不能使用 ResultSet.getDate(),也不能使用ResultSet.getTime(),因为前者不包括time数据,后者不包括date数据. 但是在使用ResultSet.getTimestamp()时也不是完全安全的,例如,当数据库中的TIMESTAMP类型的字段值