首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExactTarget -SFMC SQL查询以添加天数

ExactTarget -SFMC SQL查询以添加天数
EN

Stack Overflow用户
提问于 2016-04-06 23:10:21
回答 1查看 1.9K关注 0票数 0

运行一个查询,向电子邮件订阅者发送+X天邮件。FIRST_PROMO_SUBSCRIBE_DATE来自Oracle,他们说它不是Salesforce的兼容格式,所以我有;

代码语言:javascript
复制
select * from PROMO_SUBSCRIBERS
where 
(ORDER_ENGAGEMENT_LAST_DT > dateadd(day,-335,CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)) 
or ORDER_ENGAGEMENT_LAST_DT is null)
and 
(ORDER_LAST_DT > dateadd(day,-1,CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)) 
or order_last_dt is null)

括号正确吗?

EN

回答 1

Stack Overflow用户

发布于 2016-04-07 00:58:43

您应该能够将Oracle的日期转换为date。转换到date也将从time中的datetime字段中剥离时间部分。

SQL Fiddle

MS Server 2008架构设置

代码语言:javascript
复制
CREATE TABLE promo_subscribers 
    (
     emailaddress varchar(255)
     , ORDER_ENGAGEMENT_LAST_DT  varchar(15)
     , ORDER_LAST_DT  varchar(15)

    );

INSERT INTO promo_subscribers
(emailaddress, ORDER_ENGAGEMENT_LAST_DT, ORDER_LAST_DT)
VALUES
('test@example.com', '01-APR-98', '01-APR-16'),
('test@example.com', '01-MAY-98', '06-APR-16')

查询1

代码语言:javascript
复制
select 
emailaddress
, order_engagement_last_dt
, cast(order_engagement_last_dt as date) datecast1
, order_last_dt
, cast(order_last_dt as date) datecast2
, dateadd(day,-335, cast(getDate() as date)) datecast3
, dateadd(day,-1, cast(getDate() as date)) datecast4
from PROMO_SUBSCRIBERS

结果

代码语言:javascript
复制
|     emailaddress | order_engagement_last_dt |  datecast1 | order_last_dt |  datecast2 |  datecast3 |  datecast4 |
|------------------|--------------------------|------------|---------------|------------|------------|------------|
| test@example.com |                01-APR-98 | 1998-04-01 |     01-APR-16 | 2016-04-01 | 2015-05-08 | 2016-04-06 |
| test@example.com |                01-MAY-98 | 1998-05-01 |     06-APR-16 | 2016-04-06 | 2015-05-08 | 2016-04-06 |
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36463912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档