Dar*_*te1 3 powershell datetime date environment-variables
我遇到了一个奇怪的问题。当服务器的Region and Language设置设置为时English (United States),包含日期和时间的对象不会出现问题。但是,当我将其更改为我的国家/地区本地时,Dutch (Belgium)我的一些 PowerShell 脚本遇到了问题。
PowerShell 中是否有某个变量需要设置来解决此问题?或者我是否必须始终在服务器上默认为英文日期格式?
例如,我们使用SQL moduleDon Jones 提供的数据来填充 SQL 数据库。此行在设置为荷兰语时会生成错误,但在设置为英语时不会生成错误:
if ($properties[$property] -eq 'datetime2') { [datetime]$prop = $result.GetDateTime($result.GetOrdinal($property)) }
Run Code Online (Sandbox Code Playgroud)
我检索日期的唯一方法是Get-Date,没有任何特殊的操作。当设置为以下时,它会生成此错误Dutch (Belgium):
Exception calling "ExecuteNonQuery" with "0" argument(s): "Conversion failed when converting date and/or time from char
acter string."
Run Code Online (Sandbox Code Playgroud)
我在为Excel工作表生成内容时遇到了同样的问题。它还抱怨日期时间格式。
要将字段等信息导出DateTime到 SQL,默认语言设置为English (United States)。
因此,当您的Region and Language设置与 SQL 的默认设置不同时,即:English (United States)<> Dutch (Belgium),您应该在代码中使用以下格式以符合英语默认设置:
Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
$_.whenCreated.ToString('yyyy-MM-dd HH:mm:ss')
Run Code Online (Sandbox Code Playgroud)
另一个解决方案是更改 SQL Express 2014 中输入的默认语言:
Properties > AdvancedDefault languageDutch(或您使用的)OkSQL Management Studio去Security > Logins(在数据库下方)user name并选择Dutch如下Default languageSQL Management Studio,你应该就可以开始了结果:Get-Date当您在 PowerShell 代码中
使用 CmdLet 时,它将在将数据传输到 SQL 时按设计工作。SQL 和 Windows 的系统语言仍然是英语,但使用的格式是荷兰语。
| 归档时间: |
|
| 查看次数: |
30642 次 |
| 最近记录: |