小编Pio*_*r L的帖子

如何将时间戳添加到PowerShell和输出的各个行?

如果有的话,是否可以为&PowerShell运算符生成的输出的每一行添加时间戳?

例:

PS H:\> $result = & ping 192.168.1.1
PS H:\> echo $result

Pinging 192.168.1.1 with 32 bytes of data:
Reply from 192.168.1.1: bytes=32 time=104ms TTL=250
Reply from 192.168.1.1: bytes=32 time=106ms TTL=250
Reply from 192.168.1.1: bytes=32 time=102ms TTL=250
Reply from 192.168.1.1: bytes=32 time=102ms TTL=250
Ping statistics for 192.168.1.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 102ms, Maximum = 106ms, Average = 103ms
Run Code Online (Sandbox Code Playgroud)

期望的结果:

PS H:\> …
Run Code Online (Sandbox Code Playgroud)

powershell logging datetime process

15
推荐指数
4
解决办法
3万
查看次数

SSIS 2012日期格式为dmy vs mdy

有三个SQL Server:

  • PROD(2008 R2)
  • NEW_TEST(2012)
  • NEW_PROD(2012)

我正在将大量SSIS包从PROD迁移到NEW_TEST和NEW_PROD服务器.

源数据来自平面文本文件

来源DATE数据的格式为dd/mm/yyyy(即2015年11月5日存储为05/11/2015).

在SSIS中,DATE源列(文本文件)的定义是Unicode字符串(DT_WSTR),目标列(在DB表中)数据类型是DATETIME,因此在从文本文件读取数据并将其写入到文本文件之间进行类型转换.数据库表.

当我在PROD(旧)服务器上运行包时,数据被正确加载.

当我在NEW_TEST服务器上运行相同(但升级到2012)的包时,数据加载也正常.

但是,当我在NEW_PROD服务器上运行包时,数据加载不正确(即05/11/2015加载为2015年5月11日而不是2015年11月5日).因此,似乎NEW_PROD服务器以某种方式使用US(MDY)设置转换UK(DMY)源日期字符串.

花了很多时间试图了解发生了什么,这就是我发现的:

  1. NEW_PROD服务器的排序规则设置为"SQL_Latin1_General_CP1_CI_AS"
  2. NEW_TEST服务器具有"Latin1_General_CI_AS"的排序规则 - 这与当前的PROD服务器匹配,因此似乎NEW_PROD上的排序规则不正确.
  3. 除上述服务器级别外,服务器级别的服务器设置之间没有其他差异.
  4. 目标数据库在NEW_*服务器以及当前PROD服务器上的排序规则设置为Latin1_General_CI_AS
  5. 当我在本地计算机上手动运行程序包时,无论目标如何,数据都会正确加载.
  6. 当我从NEW_PROD服务器上的预定作业运行包时,数据被加载到INCORRECTLY.
  7. 现在,一个有趣的事情:当我从NEW_TEST服务器上的预定作业运行包时,目标连接指向NEW_PROD服务器,数据正确加载
  8. 在所有服务器上,运行SSIS服务的用户将默认语言设置为British(在sys.syslanguages中为langid = 23).这同样适用于拥有预定作业的用户.
  9. 当我将SSIS包中的源数据类型定义从DR_WSTR更改为DATETIME时,无论包执行的位置如何,都会正确加载数据.
  10. 当我在源和目标之间添加数据转换,将该列从DT_WSTR转换为DB DATETIME时,数据在NEW_PROD上加载INCORRECTLY,但仍然在NEW_TEST上运行正常.

我试图弄清楚如何使用调度程序在NEW_PROD服务器上正确加载数据,而不需要:

  1. 使用正确的排序规则重建其主数据库(不切实际 - 数据库太多,数据太多)

  2. 在所有SSIS包中的所有日期列上将源数据类型从DT_WSTR更改为DATETIME(它们中的太多以及它们在其他两个服务器上正常工作)

  3. 将目标数据类型(在DB表中)从DATETIME更改为VARCHAR(...)

所以,长话短说,我试图了解该过程的哪个元素负责将源字符串解释为日期以及如何使其使用DMY而不是MDY而不管不正确的整理设置.我以为我得到了它但是上面列表中的第7项让我感到困惑.

任何最微弱的暗示?

sql-server datetime ssis sql-server-2008-r2 sql-server-2012

7
推荐指数
1
解决办法
553
查看次数

TRY_PARSE 但速度更快

将大量(几乎 100 个)nvarchar 列转换为浮点数的最快方法是什么?

目前我有一堆 TRY_PARSE(column-name AS FLOAT) 语句,每列一个。

如果列不解析为浮动,我想要 NULL。没有错误通知,没有额外的智能。

有没有更快的方法?如果是的话,会是什么?

SQL Server 2012

sql-server data-conversion sql-server-2012

2
推荐指数
1
解决办法
1259
查看次数

Powershell:基于局部变量的条件标志

有一个叫我PowerShell脚本变量$IncludeSubfolders(或01)

根据它的值,我想Get-ChildItem在有或没有-Recurse选项的情况下调用方法.

目前,我的代码如下所示:

if($IncludeSubfolders) {
    $Files = Get-ChildItem $RootPath -Name $FileMask -Recurse
} else {
    $Files = Get-ChildItem $RootPath -Name $FileMask
}
Run Code Online (Sandbox Code Playgroud)

我想避免这种分支,如果有或没有它,只需Get-ChildItem要用一行代码调用.-Recurse$IncludeSubfolders10

这可以实现吗?怎么样?

Powershell版本5.0.10586.117

powershell flags conditional powershell-5.0

1
推荐指数
1
解决办法
676
查看次数