T-SQL获得DateTime类型的日期部分
来源:互联网 发布:javzoo2016最新域名 编辑:程序博客网 时间:2024/05/17 00:49
有时候我们过滤一个时间仅仅需要精确到”日期“,此时我们通常不想考虑”时、分、秒“。这个SQL语句应该怎么写呢?比如我们想查询2010-01-01到2010-03-01之间的数据,可能我们写的查询语句是:
SELECT * FROM Product WHERE CreateDate BETWEEN '2010-01-01' AND '2010-03-01'
而如果数据库中存储的数据是:
ProductName CreateDate
Product1 2010-01-01 11:30:29.567
那么上面的查询语句得到不到我们想要的数据。我们希望排除”时间“部分的干扰。
那么怎么写呢?先看看下面这句的效果:
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
这条查询语句能够得到当前”日期“,时间部分为00:00:00.000。
小小分析一下上面的查询语句:
--0表示1900-01-01 00:00:00.000
SELECT DATEADD(dd, 0, 0)
--现在距离1900-01-01已经有多少天?
SELECT DATEDIFF(dd, 0, GETDATE())
--1900-01-01加上40279天 = 2010-4-13, 于是我们得到结果
SELECT DATEADD(dd, 0, 40279)
于是我们可以这样写:
SELECT * FROM Product WHERE DATEADD(dd, 0, DATEDIFF(dd, 0, CreateDate)) BETWEEN '2010-01-01' AND '2010-03-01'
这个技巧来自于:http://blogs.x2line.com/al/archive/2006/02/17/1458.aspx,我当时想要DatePart来解决,但是没有能够成功。
转自:http://blog.havebb.com/b/post/tsql-get-date-part.aspx
- T-SQL获得DateTime类型的日期部分
- SQL Tip - 高效获得datetime的日期部分
- 获取 SQL Server 中的 Datetime 类型的日期部分
- SQL Server取datetime的日期部分
- sql语句中获取datetime的日期部分或时间部分
- sql语句中获取datetime的日期部分或时间部分
- sql语句中获取datetime的日期部分或时间部分
- sql语句中获取datetime的日期部分或时间部分
- sql语句中获取datetime的日期部分或时间部分
- sql语句中获取datetime的日期部分或时间部分
- sql语句中获取datetime的日期部分或时间部分
- sql语句中获取datetime的日期部分或时间部分
- 【转】sql语句中获取datetime的日期部分或时间部分
- sql语句中获取datetime的日期部分或时间部分
- SQL 查询获取datetime中的日期部分或者时间部分
- 如何取得datetime的日期部分?
- mybatis的sql中不指定日期类型,会自动映射为sql中的datetime
- 在SQL语句中获取一个DateTime型数据的日期部分
- Linux下安装MySQL
- Eclipse里maven的project报Unbound classpath variable: 'M2_REPO/**/***/***.jar'
- 这个冬季,你抑郁吗?
- ORA-19606: 无法复制到 (或还原为) 快照控制文件
- Bootloader的启动流程
- T-SQL获得DateTime类型的日期部分
- CSS3窍门:隐藏文本
- Oracle-Insert all语句学习
- grub-install的方法
- sql小结
- Ubuntu 10.04下五笔输入法的安装
- sql语句中获取datetime的日期部分或时间部分
- 通过数据库链导出遇到ORA-39126错误
- redis (三) redis.conf