我的区域日期设置设为
yyyymmdd
现在,我的SQL Server默认DateTime
设置为
mm/dd/yyyy
我的数据库列的数据类型为DateTime
,其包含的值与数据库的格式相同。
我的代码是用Delphi7编写的。
当它从数据库中取出记录时,会触发如下所示的查询:
select *
from EMPLOYEE
where JOINING_DATE > '08292017'
在上述查询中,预期日期为08/29/2017
或08-29-2017
。
在Delphi 7中,我使用GetLocaleChar
方法从区域设置中获取分隔符的值;以下是此代码:
GetLocaleChar(DefaultLCID, LOCALE_SDATE, '/')
其中
DefaultLCID := GetThreadLocale;
另一个问题:在SQL Server中,我们使用哪个分隔符而不管数据库列中使用的分隔符是否重要?
答案 0 :(得分:6)
我的数据库字段的数据类型为 - DateTime,它包含的值与数据库的格式相同。
SQL Server中的日期时间值采用二进制格式。日期时间值的字符串值let bgMusic = document.getElementById('bgMusic')
let song = document.getElementById('song')
let interval;
let context = new AudioContext()
let destination = context.createMediaStreamDestination()
let localDest = context.createMediaStreamDestination()
let source = context.createMediaElementSource(song)
source.connect(destination)
source.connect(localDest)
let localStream = window.URL.createObjectURL(localDest.stream)
bgMusic.setAttribute('src', localStream)
let playButton = document.getElementById('play')
let stopButton = document.getElementById('stop')
playButton.addEventListener('click', () => {
bgMusic.play()
song.play()
interval = setInterval(() => {
console.log('offset', song.currentTime - bgMusic.currentTime)
}, 1000)
})
stopButton.addEventListener('click', () => {
bgMusic.pause()
song.pause()
完全由应用程序表示层控制。
当它从数据库中取出记录时,会触发查询 如下所示:从EMPLOYEE中选择*,其中JOINING_DATE> '08292017'
我建议您只是参数化查询而不是传递日期文字字符串。这将避免日期格式字符串问题,并提供性能和安全性等其他好处。
如果必须将日期或日期时间文字传递给SQL Server,请使用未分离的mm/dd/yyyy
格式,以便无论SQL会话YYYYMMDD
设置如何都能正确解释。