Microsoft Access日期格式

时间:2012-06-13 19:06:32

标签: ms-access ms-access-2003

我正在尝试在MS Access 2003数据库中检索存储的日期..它以dd/mm/yyyy格式存储,但是当它被检索时,它的格式为mm/dd/yyyy

如何强制MS Access以dd/mm/yyyy ??

格式返回日期

6 个答案:

答案 0 :(得分:1)

我设法解决了。

在字段中添加格式以强制它们为dd / mm / yyyy

在我的C#应用​​程序中我调整它以处理该格式的日期/一切都很好

答案 1 :(得分:1)

您可以使用Excel TEXT函数,该函数可以指定区域设置。 这是formatLocale MS Access UDF的示例。

Option Compare Database
Option Explicit

'see https://excel.tips.net/T003299_Specifying_a_Language_for_the_TEXT_Function.html
'for countries list

Dim xl As Excel.Application

Function formatLocale(dt As Variant, xlFormat As String) As Variant
    setXl
    formatLocale = xl.WorksheetFunction.Text(dt, xlFormat)
End Function

Sub test_formatLocale()
    'print this month's name in US english
    Debug.Print formatLocale(Now, "[$-409]mmmm")
End Sub

Function setXl()
    On Error Resume Next
    If xl Is Nothing Then
        'try getting
        Set xl = GetObject(, "Excel.Application")
    End If
    If xl Is Nothing Then
        Set xl = CreateObject("Excel.Application")
    End If
End Function

答案 2 :(得分:0)

在Access中,日期内部始终存储,没有日期/月份区分。它只是许多数据库和语言中的实数。

如何将该号码转换为日期并将其显示为日期完全取决于客户端程序及其本地或系统用户设置。

如果Access本身就是客户端程序,则以当前用户设置格式显示和编辑日期,根据当前Windows用户区域设置,可以设置日期。除了在VBA中:然后代码和SQL中输入和比较的格式总是mm / dd / yyyy,因为VBA是英语(美国)书面语言。

答案 3 :(得分:0)

使用格式化功能。

Format(dateVar, "dd/mm/yyyy")

其中dateVar最好是DateTime类型。

答案 4 :(得分:0)

根据我的经验。无论你在某个阶段做什么,微软软件都会对asp,.net,sql,IE或操作系统本身的欧洲日期感到困惑。主要是当有一些模棱两可的时候,例如6/5/2012,可能是5月6日或6月5日。我保证在某个阶段会出错。

设置区域设置会让您陷入虚假的安全感。

所以要么坚持使用古怪的美国日期格式mmddyyyy,要么像我们一样,完全忘记微软的日期格式,并在数字字段中根据yyyymmddhhmmss让你自己。它更灵活,更强大,因为它与时间相结合,可以进行非常有效的时间比较。微软的问题是他们试图默默地解决问题我根本没有发现这有用。

答案 5 :(得分:0)

如果语言环境不是美国,则在Microsoft Access中将今天的日期用作默认值时要格外小心。 (我的是英国)。

  • 确保将日期字段类型指定为“日期/时间”。
  • 使用Date()作为默认值。 必须遵守这两个规则。正确显示了“日期/时间”字段中的转换,并使用了正确的语言环境格式。

这克服了我匆忙将字段定义为短文本并随后引入默认值= Date $()时遇到的问题。是的,它很草率,制作的是美国mm / dd / yyyy格式,因此必须使用日期选择器进行维修。