Date 如何以非美国格式更改/格式化日期的时间部分?

Date 如何以非美国格式更改/格式化日期的时间部分?,date,ms-access,format,Date,Ms Access,Format,我的CSV文件中有一个日期/时间字段,格式为d/m/yyyy h:nn:ss AM CSV在MS Access中链接,我想将上述字段转换为dd/m/yy hh:nn格式 听起来很简单,但是当我尝试格式([日期处理])时,在我的sql中“dd/m/yy hh:nn”,它会切换dd和m。因此2015年4月12日(2015年12月4日)变成2015年4月12日(2105年4月12日) 我不想使用计算机的日期格式,因为它可能会破坏我的应用程序。如何在SQL中执行此操作?您可以在一个简单的函数中使用Spl

我的CSV文件中有一个日期/时间字段,格式为d/m/yyyy h:nn:ss AM

CSV在MS Access中链接,我想将上述字段转换为dd/m/yy hh:nn格式

听起来很简单,但是当我尝试
格式([日期处理])时,在我的sql中“dd/m/yy hh:nn”
,它会切换ddm。因此2015年4月12日(2015年12月4日)变成2015年4月12日(2105年4月12日)


我不想使用计算机的日期格式,因为它可能会破坏我的应用程序。如何在SQL中执行此操作?

您可以在一个简单的函数中使用Split来洗牌日期部分:

Public Function ReFormat(ByVal Date1 As String) As String

    Dim DateParts   As Variant
    Dim DatePart    As String
    Dim TimePart    As String

    DatePart = Split(Date1, " ", 2)(0)
    TimePart = Split(Date1, " ", 2)(1)
    DateParts = Split(DatePart, "/")

    If UBound(DateParts) = 2 Then
        ReFormat = DateParts(1) & "/" & DateParts(0) & "/" & Format(DateParts(2) Mod 100, "00") & " " & TimePart
    End If

End Function

Try:
格式(CDbl([处理日期]),“dd/m/yy hh:nn”)

请落选的选民解释一下,这个问题有什么问题吗?这通常只是意味着他/她不理解这个问题,然后相信没有其他人会理解。正如问题本身所表明的那样,在非美国环境中,这个问题会失败。我使用非美国环境,我使用了两年多,而且它的工作没有问题ms,但我使用CLng是因为我不需要时间,所以我希望这对其他人有帮助,(我试图将此作为评论添加,但我没有50个声誉来做这件事!!!)。谢谢@gustav抱歉,我搞错了。如果
[日期处理]
保留一个日期,您的表达式将起作用,但提问者有一个日期的字符串表达式,该表达式将以
CDbl``或
CLng
失败。因此,您的评论与问题并不真正相关。作为补充说明,
CLng`将在时间部分为PM时对日期进行四舍五入。要切断时间,请使用
Fix
如:`Format:`(Fix([Date Processed]),“dd/m/yy hh:nn”)到目前为止@Gustav answer工作得很好,因此我选择它作为正确答案。但是Fadi方法非常简单(如果可行的话)。我会在有机会的时候测试它,让你们知道。谢谢@Gustav。也许我没有理解这个问题,我假设字段[Date Processed]数据类型是日期/时间,如果是字符串,请确保使用CDbl将不起作用,如果日期中有时间部分,则使用CLng是不安全的,并且使用Fix将更安全。谢谢您的建议。