클래식 ASP 사이트의 양식을 통해 SQL 2014 Express 데이터베이스에서 날짜와 시간을 저장하고 검색하려고합니다.
이 스크립트의 기본 개념은이 스크립트가 어떤 설정에서 실행 되든 시간 형식은 항상 동일하다는 것입니다.
나는 날짜와 시간을 datetime2
SQL 형식으로 dd-mm-yyyy hh:nn:ss
저장하지만 yyyy-dd-mm hh:nn:ss
. 날짜를 검색하면 다음과 같이 씁니다 dd/mm/yyyy hh:nn:ss AM/PM
! 왜?
컴퓨터가 올바른 시간 및 날짜 형식으로 설정되었으며 SQL 데이터베이스가 Windows 시간 및 날짜 형식을 상속하도록 설정되었습니다.
이 코드는 내가 원하는 시간 형식을 구성합니다 ( dd-mm-yyyy hh:nn:ss
).
<%
Dim dd, mm, yy, hh, nn, ss
Dim datevalue, timevalue, dtsnow, dtsvalue
dtsnow = Now()
dd = Right("00" & Day(dtsnow), 2)
mm = Right("00" & Month(dtsnow), 2)
yy = Year(dtsnow)
hh = Right("00" & Hour(dtsnow), 2)
nn = Right("00" & Minute(dtsnow), 2)
ss = Right("00" & Second(dtsnow), 2)
datevalue = dd & "-" & mm & "-" & yy
timevalue = hh & ":" & nn & ":" & ss
dtsvalue = datevalue & " " & timevalue
%>
날짜와 시간을 가져와 내림차순으로 정렬하려고합니다. 이 부분은 작동하지만 여전히 잘못된 날짜 형식과 오전 / 오후로 제공되므로 정렬 순서가 무작위로 표시되고 순서대로 나오지 않습니다.
strSQL = "SELECT * FROM dbo.notes WHERE tag = '" & tagname & "' ORDER BY dt DESC"
따라서 이러한 변환을 적용하여 날짜와 시간을 올바르게 표시하려고합니다. dd-mm-yyyy hh : nn : ss
strSQL = "SELECT FORMAT(dt, 'dd-MM-yyyy HH:mm:ss', 'de-de') as tag,username,dt,note FROM dbo.notes WHERE tag = '" & tagname & "' ORDER BY dt DESC"
그러나 그것으로이하지 않습니다 작업은 다음 "URL을 처리하는 동안 서버에 오류가 발생했습니다"와 함께 제공 또는 아직 단 하나의 날짜와 시간이 데이터베이스에 저장된 날짜 및 시간 형식을 모두 기록합니다.
어떻게 해결할 수 있습니까?
FORMAT () 은 찾고있는 SQL Server 2012+ 함수입니다.
SELECT FORMAT(SYSDATETIME(), 'yyyy-MM-dd hh:mm:ss', 'en-US');
당신에게 줄 것입니다 : 2017-11-02 11:58:44
또한 내가 잘 이해한다면 올바른 DB 데이터 정렬을 찾는 것이 해결책이 될 수 있습니다. 현재 실행을 확인하려면 :
SELECT SERVERPROPERTY('collation');
마지막으로 확인할 수있는 것은 SET DATEFORMAT 으로 세션의 환경 설정을 변경해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다