SAS导出日期格式(SAS Export date format)
嗨我正在尝试从一个日期文件夹导入数据(成功),所以文件路径读取/年/月/日(*今天的日期)
然后我调整了一些数据(再次成功)。 一旦完成,我想将它导出到一个文件夹,该文件夹是我从它取得的文件夹前29天。
这是我目前的宏:
%LET TODAY = %SYSFUNC(TODAY()); %PUT &TODAY; %LET TODAYA = %SYSFUNC(PUTN(&TODAY,DDMMYYn8.)); %PUT &TODAYA; %LET TWENTYNINE = %SYSFUNC(PUTN(&TODAY.+29,DDMMYYn8.)); %PUT &TWENTYNINE; %LET T_DATE = %SYSFUNC(PUTN(&TODAY,DDMMYYn8..)); %LET T_YEAR = %SYSFUNC(YEAR(&TODAY)); %LET T_MONTH = %SYSFUNC(MONTH(&TODAY)); %LET P_DATE = %SYSFUNC(PUTN(&TWENTYNINE,DDMMYYn8..)); **%PUT &P_DATE; %LET P_YEAR = %SYSFUNC(YEAR(&P_DATE)); %LET P_MONTH = %SYSFUNC(MONTH(&P_DATE));**
P_Date显示错误:
错误:由%SYSFUNC或%QSYSFUNC宏函数引用的参数1功能MONTH不是数字。 错误:在%SYSCALL,%SYSFUNC或%QSYSFUNC参数列表中检测到无效参数。 %SYSCALL语句或%SYSFUNC或%QSYSFUNC函数引用的执行已终止。
但是我无法得到我的头,任何帮助都会受到大力赞赏。
Hi I am trying to import data (successfully) from a folder that is a date so the file path reads /year/month/date (*today's date)
I am then tweaking some of the data (again successfully). Once that is done I want to export it to a folder that is 29 days forward from the folder I took it from.
Here is my current macro:
%LET TODAY = %SYSFUNC(TODAY()); %PUT &TODAY; %LET TODAYA = %SYSFUNC(PUTN(&TODAY,DDMMYYn8.)); %PUT &TODAYA; %LET TWENTYNINE = %SYSFUNC(PUTN(&TODAY.+29,DDMMYYn8.)); %PUT &TWENTYNINE; %LET T_DATE = %SYSFUNC(PUTN(&TODAY,DDMMYYn8..)); %LET T_YEAR = %SYSFUNC(YEAR(&TODAY)); %LET T_MONTH = %SYSFUNC(MONTH(&TODAY)); %LET P_DATE = %SYSFUNC(PUTN(&TWENTYNINE,DDMMYYn8..)); **%PUT &P_DATE; %LET P_YEAR = %SYSFUNC(YEAR(&P_DATE)); %LET P_MONTH = %SYSFUNC(MONTH(&P_DATE));**
The P_Date reveals the error:
ERROR: Argument 1 to function MONTH referenced by the %SYSFUNC or %QSYSFUNC macro function is not a number. ERROR: Invalid arguments detected in %SYSCALL, %SYSFUNC, or %QSYSFUNC argument list. Execution of %SYSCALL statement or %SYSFUNC or %QSYSFUNC function reference is terminated.
But I cant get my head around it any help would be massively appreciated.
原文:https://stackoverflow.com/questions/35010237
最满意答案
你是如何将Guids变成弦乐的?
您可以使用
Guid.ToString("N")
生成不带连字符的字符串guid。您可能还必须在开头放置一个非数字 - 如果这样做,使用String.Format()可能最容易做到:
string guidStr = string.Format("X{0:N}", Guid.NewGuid()); // Prefix with "X"
How are you turning the Guids into strings?
You can use
Guid.ToString("N")
to produce a string guid without any hyphens.You may have to put a non-digit at the start too - if you do, it's probably easiest to do it with String.Format():
string guidStr = string.Format("X{0:N}", Guid.NewGuid()); // Prefix with "X"
相关问答
更多-
GUID似乎是你的主键的一个自然选择 - 如果你确实需要,你可能会争论将它用于表的PRIMARY KEY。 我强烈建议不要做的就是使用GUID列作为集群密钥 ,默认情况下,SQL Server 会这样做 ,除非您明确告诉它不要。 你真的需要分开两个问题: 1) 主键是一个逻辑结构 - 唯一可靠地标识表中每一行的候选键之一。 这可以是任何东西,真的 - 一个INT,一个GUID,一个字符串 - 选择对你的场景最有意义的东西。 2) 聚簇键 (在表格中定义“聚簇索引”的列或列) - 这是与物理存储相关的东西,在 ...
-
如何创建确定性线圈(How to Create Deterministic Guids)[2023-04-03]
如@bacar所述, RFC 4122§4.3定义了一种创建基于名称的UUID的方法。 这样做的优点(仅仅是使用MD5哈希)是这些保证不会与非命名的UUID相冲突,并且与其他基于名称的UUID有很小的可能性。 .NET Framework中没有本地支持创建这些,但是我在GitHub上发布了实现该算法的代码 。 可以使用如下: Guid guid = GuidUtility.Create(GuidUtility.UrlNamespace, filePath); 为了进一步降低与其他GUID冲突的风险,您可以 ... -
我从其中一个值(any)创建一个HashSet
,然后检查所有其他值是否等于它: // TODO: Handle the dictionary being empty var firstSet = new HashSet (values.First().Value); var allEqual = values.All(pair => firstSet.SetEquals(pair.Value)); 这假定: 每个清单中的顺序并不重要 每个GUID出现在列表中的次数并不重要 (即你真 ... -
如何生成顺序GUID?(How to generate sequential GUIDs?)[2023-12-27]
如果你的意思是基于公共前缀的uuids,比如MAC和时间,请看看uniqid 。 在这里,您还可以找到符合RFC 4211的UUIDS的一些代码。 如果你想要安全起见,请将此包装器用于libuuid: pecl uuid 。 没有测试过,YMMV。 If you mean uuids based on a common prefix, such as MAC and time, have a look at uniqid. Here you can also find some code for RFC 4 ... -
SQL Server中的GUID(GUIDs in SQL Server)[2022-05-13]
如果这是针对聚集索引(通常是主键),那么我强烈推荐NEWSEQUENTIALID() (SQL Server 2005),因为NEWID()会在这种情况下创建一个分段索引,并且是真正的随机数。 If this is for a clustered index (most often a primary key), I highly recommend NEWSEQUENTIALID() (SQL Server 2005 on up) since, NEWID() will create a fragment ... -
Guid保证是唯一的吗?(Are Guids guaranteed to be unique?)[2021-07-15]
虽然每个生成的GUID不能保证是唯一的,但唯一键(2128或3.4×1038)的总数非常大,以致两次生成相同数字的概率非常小。 你可以在这里查看更多信息。 避免重复的GUID(如果你仍然需要的话)的一个可能的解决方案是使用UNIQUE约束 。 While each generated GUID is not guaranteed to be unique, the total number of unique keys (2128 or 3.4×1038) is so large that the prob ... -
RSS GUID可以包含哈希吗?(Can RSS GUIDs contain hashes?)[2024-01-06]
“聚合器必须将guid视为一个字符串。语法没有规则。这取决于RSS文档的创建者,以确定字符串的唯一性。” 资料来源: w3schools "Aggregators must view the guid as a string. There are no rules for the syntax. It's up to the creator of the RSS document, to establish the uniqueness of the string." Source: w3schools -
你是如何将Guids变成弦乐的? 您可以使用Guid.ToString("N")生成不带连字符的字符串guid。 您可能还必须在开头放置一个非数字 - 如果这样做,使用String.Format()可能最容易做到: string guidStr = string.Format("X{0:N}", Guid.NewGuid()); // Prefix with "X" How are you turning the Guids into strings? You can use Guid.ToString( ...
-
这是Mysql .net连接器中的一个错误,请查看此错误报告以获取更多详细信息http://bugs.mysql.com/bug.php?id=52747 更新:在6.1.1之后,只要使用BINARY(16)作为存储类型,就应该在连接字符串中添加“old guids = true”。 否则你应该使用CHAR(36) This is a bug in Mysql .net connector check this bug report for more details http://bugs.mysql.co ...
-
您的测试方法目前只有一个参数 - 字符串 - 但不一定是这种情况。 如果您的测试方法有3个参数怎么办? 你怎么把它打包成IEnumerable
因此,当您使用xUnit的“属性数据”功能时,xUnit要求该属性采用IEnumerable