sql-server - 无法修复 sql 查询中的语法错误
问题描述
我正在尝试使用以下查询将临时表中的数据插入到 Microsoft SQL Server Management Studio 18 中特定时间段的原始表中。
INSERT INTO dbo.trial ([turbineid], [createddate], [lastupdatedby],[lastupdateddate])
SELECT
[turbineid], [createddate], [lastupdatedby], [lastupdateddate]
FROM
dbo.trial_January
WHERE
createddate BETWEEN (DATEPART(mm, createddate) = 01
AND DATEPART(dd, createddate) = 01))
AND (DATEPART(mm, createddate) = 01
AND DATEPART(dd, createddate) = 30)
尝试执行此查询时,我收到此错误:
'=' 附近的语法不正确。
解决方案
您正在尝试将日期与一些整数进行比较。你的 where 子句应该看起来更像这样
WHERE createddate BETWEEN (DATEFROMPARTS(DATEPART(YY,createddate),1,1)) AND (DATEFROMPARTS(DATEPART(YY,createddate),1,30))
推荐阅读
- ios - 如何在 SwiftUI 中向 List 的 .ondelete() 添加确认
- python - 如何从 Pandas Dataframe 创建特定格式的文本文件
- excel - 范围内的正确大小写文本
- pandas - 平均 datetime.time 系列
- java - Spring boot - 如何通过每月数据刷新来提高应用程序的 api 响应时间
- javascript - Javascript 数组无法正确填充,因为 Firestore 中的异步方法
- json - Paginationjs、车把、ajax 调用和 JSON
- angular - 有没有办法在 html datalist 选项中应用切片管道?(角度 8)
- java - 如何在 Jfreechart 中使鼠标滚轮缩放(setMouseWheelEnabled())只影响特定轴?
- javascript - 收到语法错误说 Unexpected Token