sql-server - SQL Server 日期时间 LIKE 选择?

标签 sql-server sql-like

在 MySQL

select * from record where register_date like '2009-10-10%'

SQL Server 中的语法是什么?

最佳答案

您可以使用 DATEPART() 函数

SELECT * FROM record 
WHERE  (DATEPART(yy, register_date) = 2009
AND    DATEPART(mm, register_date) = 10
AND    DATEPART(dd, register_date) = 10)

我发现这种方式很容易阅读,因为它忽略了时间部分,并且您不必使用第二天的日期来限制您的选择。您可以通过使用适当的 DatePart 代码添加额外的子句来获得更大或更小的粒度,例如

AND    DATEPART(hh, register_date) = 12)

获取 12 到 1 之间的记录。

咨询MSDN DATEPART docs查看有效参数的完整列表。

关于sql-server - SQL Server 日期时间 LIKE 选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1629050/

相关文章:

mysql - 比如搜索区分大小写?

sql - SQL 中的 NOT `column` IN (...) 与 `column` NOT IN (...)

sql-server - 查看(但不执行)存储过程及其代码需要什么级别的 SQL Server 访问权限?

php - PDO MySQL 查询中 LIKE 的 GET 值的 bindParam

sql - Golang 中的跨数据库准备语句绑定(bind)(like 和 where in)

mysql - 是否可以在 BETWEEN 语句中使用 LIKE 语句?

mysql - 尝试让类似 mysql 的函数与函数一起使用

sql-server - DACPAC 提示带有 FOR SYSTEM_TIME 子句的 View

SQL 在没有子查询的情况下获取最新结果

sql - 监控 SQL 性能和负载