我希望有人可以指出我做错了什么,因为我不知道。这是我第一次使用DATEADD。我尝试将+ 7,+ 8放在以防万一,但没有。我不知道我做错了什么。我只需要7天的记录,而不是那些天之间的记录。
SELECT A.ID
,B.EMAIL
,A.NUMBER
,A.EXPIRATION
FROM vw_RECORD AS A
LEFT JOIN vw_INFO AS B ON A.ID=B.ID
WHERE NUMBER LIKE 'C%'
AND A.EXPIRATION = DATEADD(DAY,7,GETDATE())
没有最后一个AND语句的结果让我:
ID EMAIL NUMBER EXPIRATION
530c email@gmail.com C-0001 2017-08-29 00:00:00.000
先谢谢你。
答案 0 :(得分:3)
在SQL Server中,GETDATE()
(尽管名称有)具有时间组件。所以,你需要删除它:
A.EXPIRATION = CONVERT(DATE, DATEADD(DAY, 7, GETDATE()))
答案 1 :(得分:0)
我的猜测是DATEADD不能接受DAY作为第一个参数,因为它使用缩写(例如mm表示月份),所以代码看起来像这样:
SELECT A.ID
,B.EMAIL
,A.NUMBER
,A.EXPIRATION
FROM vw_RECORD AS A
LEFT JOIN vw_INFO AS B ON A.ID=B.ID
WHERE NUMBER LIKE 'C%'
AND A.EXPIRATION = DATEADD(dd,7,GETDATE())
同样,getdate会在最后添加时间,而我猜测到期也有时间部分,因为您可能只是在当前日期添加了7天,但它永远不会完全相同。您可以尝试在没有时间部分的情况下转换它们:
SELECT A.ID
,B.EMAIL
,A.NUMBER
,A.EXPIRATION
FROM vw_RECORD AS A
LEFT JOIN vw_INFO AS B ON A.ID=B.ID
WHERE NUMBER LIKE 'C%'
AND CONVERT(date, A.EXPIRATION) = CONVERT(date, DATEADD(dd,7,GETDATE()))
答案 2 :(得分:0)
试试这个:
leaflet() %>% addTiles() %>%
setView(lng = 12, lat = 50, zoom = 4) %>%
# Register leaflet-side-by-side plugin on this map instance
registerPlugin(LeafletSideBySidePlugin) %>%
onRender("
function(el, x) {
var mylayer1 = L.tileLayer(
'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',{
maxZoom: 18
}).addTo(this);
var mylayer2 = L.tileLayer(
'//stamen-tiles-{s}.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.png',{
maxZoom: 14
}).addTo(this);
L.control.sideBySide(mylayer1, mylayer2).addTo(this);
")