【问题标题】:Day/Month/Year date changed to Month/Day/Year in SQLSQL 中的日/月/年日期更改为月/日/年
【发布时间】:2015-07-16 07:51:15
【问题描述】:

我有一个运行良好的旧 Classic ASP 应用程序,最近它被移动到带有 IIS 8.5 的 windows server 2012 服务器,问题是我有一个表单来添加日/月/年格式的记录,当日期在 SQL 中输入为 23/06/2015 将正确添加为 23/06/2015 但是当日期输入为 01/06/2015 时:SQL 中的 2015 年 6 月 1 日将添加为 06/01/2015 月/日/年会不正确

我检查了服务器的位置和日期格式,它是 dd/mm/yyyy,并且自旧服务器 SQL 2008 以来数据库没有更改。 我在网上搜索,发现我需要在 GLOBALIZATION 下更改 IIS 文化,但即使我选择了我的国家,我也不知道该选择什么,但我仍然面临同样的问题。 任何建议

【问题讨论】:

  • 这可能不是 IIS 问题,很可能是 SQL Server 问题。你检查过 SQL 使用的区域吗?

标签: datetime asp-classic date-format iis-8.5 window-server


【解决方案1】:

如果您不想更改全球化和本地化设置,简单的答案是在以字符串形式插入日期时使用通用日期输入 YYYYMMDD

更新 解释您的评论:在插入/更新查询中更改日期字符串的格式时,它不会更改 sql 表本身的格式。

例如

UPDATE [table]
SET [column] = '20150716 10:22'
WHERE Id = 7489

查看时显示与表中其他记录相同:

【讨论】:

  • 谢谢您的回复,我已经在iis中更改了应用程序的全球化但没有发生任何事情,而且数据库已经有大量数据更改了现在输入的日期会影响数据
  • 格式仅针对插入语句进行更改,不会在数据库本身内更改,因此您现有的数据将保持不变。
  • 我是否可以在 iis 服务器中修改任何其他设置来解决此问题,而不是更新插入和更新功能,这将是我的最后一个选择?
  • 在线快速搜索表明您需要设置您正在使用的用户的默认语言。一个这样的链接:sion-it.co.uk/tech/…
【解决方案2】:

试试这个:-

https://www.webwiz.co.uk/kb/asp-tutorials/date-time-settings.htm

在 global.asa 中添加一个条目,如下所示...

'When a session starts on the server the following code will be run
Sub Session_OnStart

     'Set the server locale
     Session.LCID = 2057

End Sub

【讨论】:

    【解决方案3】:

    有时无法解决此问题(或全局解决方案可能会损坏旧脚本),您可以使用转换函数来更改存储过程中的格式。

    例如:

    select getdate() --prints 2018-10-05 12:24:43.597
    select Convert(char(10),getdate(),103) --To force the date to be dd/mm/yyyy
    

    并且不让 asp 页面格式化日期,只打印原始数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-23
      • 2015-04-29
      • 2011-09-11
      相关资源
      最近更新 更多